文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-09-12 21:59

关注

方法1:使用dataframe.loc[]函数

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

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

some_value = 需要被替换的值   value = 应该被放置的值。

 示例: 我们要把性别栏中的所有 “男性 “改为1。

import pandas as pdimport numpy as np  # datadata= {    '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'],}  # 创建一个 Dataframe 对象df = pd.DataFrame(data)  # 条件应用df.loc[df["gender"] == "male", "gender"] = 1

 输出:

使用dataframe.loc[]函数

 方法2:使用NumPy.where()函数

NumPy是一个非常流行的库,用于2D和3D数组的计算。它为我们提供了一个非常有用的方法where()来访问有条件的特定行或列。我们也可以用这个函数来改变某一列的特定值。

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

 示例: 这个numpy.where()函数应该写上条件,如果条件为真,后面是值,如果条件为假,则是一个值。现在,我们要把性别栏中的所有 “女性 “改为0,”男性 “改为1。

import pandas as pdimport numpy as np  # datadata= {    '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'],}  # 创建一个 Dataframe 对象df = pd.DataFrame(data)   # 条件应用df["gender"] = np.where(df["gender"] == "female", 0, 1)

输出:

使用NumPy.where()函数

 方法3:使用pandas掩码函数

Pandas的掩蔽函数是为了用一个条件替换任何行或列的值。

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

示例:使用这个屏蔽条件,将性别栏中所有的 “女性 “改为0。

import pandas as pdimport numpy as np  # datadata= {    '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'],}  # 创建一个 Dataframe 对象df = pd.DataFrame(data)  # 条件应用 1df['gender'].mask(df['gender'] == 'female', 0, inplace=True)  # 条件应用 2#df['math score'].mask(df['math score'] >=60 ,'good', inplace=True)

输出:

使用pandas掩码函数

方法4:替换包含指定字符的字符串

语法 : data["列名"].mask(data.列名.str.contains(".*?某字符串"), "替换目标字符串", inplace=True) 

import pandas as pdimport numpy as np  # datadata= {    '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'],}  # 创建一个 Dataframe 对象df = pd.DataFrame(data)  # 条件应用 data["math score"].mask(data.math score.str.contains(".*?良"), "良好", inplace=True) 
使用pandas掩码函数

来源地址:https://blog.csdn.net/Rick_M/article/details/128439156

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯