如何在Pandas中根据条件替换列中的值?

这篇具有很好参考价值的文章主要介绍了如何在Pandas中根据条件替换列中的值?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在使用Pandas的Python中,DataFrame列中的值可以通过使用各种内置函数根据条件进行替换。在本文中,我们将讨论在Pandas中用条件替换数据集列中的值的各种方法。

1. 使用dataframe.loc方法

使用此方法,我们可以使用条件或布尔数组访问一组行或列。如果我们可以访问它,我们也可以操纵值,是的!这是我们的第一个方法,通过pandas中的dataframe.loc[]函数,我们可以访问一个列并使用条件更改其值。

语法: df.loc[ df[“column_name”] == “some_value”, “column_name”] = “value”

注意:您也可以使用其他运算符来构造条件以更改数值。

例子:在此示例中,代码导入Pandas和NumPy库,从保存学生数据的字典(‘Student’)构建DataFrame(‘df’),然后在打印修改后的DataFrame之前将’gender’列的值从“male”更改为“1”。

# Importing the libraries
import pandas as pd
import numpy as np

# data
Student = {
	'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
	'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
	'math score': [50, 100, 70, 80, 75, 40],
	'test preparation': ['none', 'completed', 'none', 'completed',
						'completed', 'none'],
}

# creating a Dataframe object
df = pd.DataFrame(Student)

# Applying the condition
df.loc[df["gender"] == "male", "gender"] = 1
print(df)

输出

 Name  gender  math score test preparation
0    John       1          50             none
1     Jay       1         100        completed
2  sachin       1          70             none
3  Geetha  female          80        completed
4  Amutha  female          75        completed
5  ganesh       1          40             none

2. 使用NumPy.where方法

我们将要看到的另一个方法是使用NumPy库。NumPy是一个非常流行的库,用于计算2D和3D数组。它为我们提供了一个非常有用的方法,where()可以访问带有条件的特定行或列。我们还可以使用此函数更改列的特定值。

语法: df[“column_name”] = np.where(df[“column_name”]==”some_value”, value_if_true, value_if_false)

例子:在此示例中,代码导入Pandas和NumPy库,从包含学生数据的名为“student”的字典中构建名为“df”的DataFrame,并使用NumPy np.where函数将“gender”列的值从“female”更改为“0”,将“male”更改为1。然后输出更改后的DataFrame。

# Importing the libraries
import pandas as pd
import numpy as np

# data
student = {
	'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
	'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
	'math score': [50, 100, 70, 80, 75, 40],
	'test preparation': ['none', 'completed', 'none', 'completed',
						'completed', 'none'],
}

# creating a Dataframe object
df = pd.DataFrame(student)


# Applying the condition
df["gender"] = np.where(df["gender"] == "female", 0, 1)
print(df)

输出

Name  gender  math score test preparation
0    John       1          50             none
1     Jay       1         100        completed
2  sachin       1          70             none
3  Geetha       0          80        completed
4  Amutha       0          75        completed
5  ganesh       1          40             none

3. 使用mask方法

Pandas masking函数用于将任何行或列的值替换为条件。

语法: df[‘column_name’].mask( df[‘column_name’] == ‘some_value’, value , inplace=True )

例子:在此示例中,代码导入Pandas和NumPy库,从包含学生数据的名为“student”的字典中构建名为“df”的DataFrame,然后使用Pandas mask函数将“gender”列中的值“female”替换为0,然后打印修改后的DataFrame。它还包括一行注释,显示如何有条件地将“math score”列中的值替换为“good”(对于大于或等于60的分数)。

# Importing the libraries
import pandas as pd
import numpy as np

# data
student = {
	'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
	'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
	'math score': [50, 100, 70, 80, 75, 40],
	'test preparation': ['none', 'completed', 'none', 'completed', 
						'completed', 'none'],
}

# creating a Dataframe object
df = pd.DataFrame(student)

# Applying the condition
df['gender'].mask(df['gender'] == 'female', 0, inplace=True)
print(df)
# Try this too
#df['math score'].mask(df['math score'] >=60 ,'good', inplace=True)

输出

Name gender  math score test preparation
0    John   male          50             none
1     Jay   male         100        completed
2  sachin   male          70             none
3  Geetha      0          80        completed
4  Amutha      0          75        completed
5  ganesh   male          40             none

4. 使用apply()和lambda函数

在这个例子中,我们使用了lamda和apply()函数来根据条件替换列中的值。

# Importing the libraries
import pandas as pd
import numpy as np

# Data
student = {
	'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
	'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
	'math score': [50, 100, 70, 80, 75, 40],
	'test preparation': ['none', 'completed', 'none', 'completed',
						'completed', 'none'],
}

# Creating a DataFrame object
df = pd.DataFrame(student)

# Applying the condition using apply and lambda
df['gender'] = df['gender'].apply(lambda x: 0 if x == 'female' else x)

print(df)

输出文章来源地址https://www.toymoban.com/news/detail-795182.html

Name gender  math score test preparation 
0    John   male          50             none 
1     Jay   male         100        completed 
2  sachin   male          70             none 
3  Geetha      0          80        completed 
4  Amutha      0          75        completed 
5  ganesh   male          40             none

到了这里,关于如何在Pandas中根据条件替换列中的值?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pandas 中如何按行或列的值对数据排序?

    在处理表格型数据时,常会用到排序,比如,按某一行或列的值对表格排序,要怎么做呢? 这就要用到 pandas 中的 sort_values() 函数。 一、 按列的值对数据排序 先来看最常见的情况。 1.按某一列的值对数据排序 以下面的数据为例。 Name course1 course2 sport 1 Paul 85 90 basketball 2 Ri

    2024年02月16日
    浏览(45)
  • postgresql源码学习(55)—— 列中的NULL值是如何存储和判断的?

    问题来自 《PostgreSQL面试题集锦》学习与回答_Hehuyi_In的博客-CSDN博客 第11题        在pg元组头数据中,有一个t_bits数组,用于存储空值位图。当元组中没有null值的时候,t_bits可以被认为是空的,当元组有null值的列时,t_bits使用一个bit来表示列是否为null。 htup_details.h FLEXI

    2024年02月04日
    浏览(38)
  • java中HashMap如何根据value的值去获取key是多少

    在Java中,HashMap是一种基于键值对存储数据的数据结构。HashMap并没有直接提供根据value获取key的方法。但你可以通过遍历HashMap的entrySet,找到对应的value,然后获取其对应的key。 以下是一个示例代码: 你可以传入一个HashMap和一个value,这个方法会遍历HashMap的entrySet,找到第一

    2024年02月09日
    浏览(39)
  • Python 教学 | Pandas 妙不可言的条件数据筛选

    目录 Part 1  前言 Part 2  Excel 的数据筛选与分布统计 Part 3  Pandas 条件数据筛选 1、条件数据筛选的不同维度 (1) 比较数据值 (2) 是否为空值 (3) 文本内容筛选 (4) 数据值长度 (5) 日期筛选 (6) 其他 2、复合条件筛选 Part 4  总结 Part 5  Python教程 在 Python 中,第三方库 Pandas 是数据清

    2024年02月10日
    浏览(38)
  • 筛选符合条件的数据行(Python Pandas 数据框中基于条件的行选择)

    筛选符合条件的数据行(Python Pandas 数据框中基于条件的行选择) 在处理数据的过程中,有时需要筛选出数据框中符合特定条件的行,以便对这些行进行进一步的处理或者分析。Python Pandas 库提供了多种方式来实现基于条件的行选择。 下面我们将演示如何使用 Pandas 实现基于

    2024年02月12日
    浏览(39)
  • 【uniapp小程序】如何根据开发和发行,自动替换不同环境的baseUrl

    小程序调试时使用Hbuilder的运行功能,在测试环境调试;到了发行正式版时使用发行功能,baseurl需要替换到生产环境;有没有办法让代码能够识别当前使用的时运行还是发行,自动切换baseur而不是手动切换??? uni-app提供了一个全局变量process.env.NODE_ENV,当我们使用Hbuilder时

    2024年01月19日
    浏览(43)
  • Python pandas库怎样根据某一列的数据将所有数据分类

    在数据处理中,数据分类是一项基础而重要的工作。本文将介绍如何使用Python pandas库,根据某一列的数据将所有数据分类。 1. 读取数据文件,生成数据框(DataFrame)对象 首先,需要读取数据文件,生成数据框(DataFrame)对象。这里以读取CSV格式的数据文件为例,代码如下:

    2024年02月07日
    浏览(46)
  • Vue 框架如何获取数组中的值?

    在Vue框架中,获取数组中的值可以通过以下几种方式实现: 1、使用数组索引: 可以使用数组的索引来获取特定位置的值。在Vue中,可以通过在模板中使用差值表达式或指令来获取数组中的值。例如: 2、使用计算属性: Vue中的计算属性是一种动态计算值的属性,可以在模板

    2024年02月11日
    浏览(36)
  • Python 中的值传递 和 引用传递

    position 是一个 tensor; 下面这段代码第一行,如果在函数里面修改 position 会导致 下面的 position 也会发生变化 在第二行加上 clone 函数 之后,才可以保证执行完 第二行之后 的 position 的数值不会发生变换。

    2024年02月13日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包