📜  按条件替换列中的值python(1)

📅  最后修改于: 2023-12-03 14:54:40.428000             🧑  作者: Mango

按条件替换列中的值Python

在数据分析和处理中,经常需要对数据中的某些值进行替换。本文将介绍如何在Python中按条件替换列中的值。

我们首先需要用到Python中的pandas库,它是一种基于NumPy的库,用于快速便捷地处理大量的数据。

读取数据

我们先读取一个csv格式的数据文件,这里我们以一个学生的基本信息为例:

import pandas as pd

# 读取csv数据文件
df = pd.read_csv('students.csv')

# 显示前5行数据
print(df.head())

输出结果:

     姓名  年龄 性别    院系  成绩
0   张三丰  22  男  计算机科学  78
1   李四白  21  女     化学  85
2   王五英  23  男  计算机科学  92
3  赵六黑  20  女     生物  80
4  孙七红  22  男     数学  68

我们可以看到,数据文件包括姓名、年龄、性别、院系和成绩等信息。现在我们要按照一定条件来替换其中的一些值。

按条件替换

我们以年龄为例,假设我们想把年龄大于22岁的学生年龄修改为0。我们可以使用pandas的loc方法实现:

# 替换年龄大于22的学生年龄为0
df.loc[df['年龄']>22, '年龄'] = 0

# 显示前5行数据
print(df.head())

输出结果:

     姓名  年龄 性别    院系  成绩
0   张三丰   0  男  计算机科学  78
1   李四白  21  女     化学  85
2   王五英   0  男  计算机科学  92
3  赵六黑  20  女     生物  80
4  孙七红   0  男     数学  68

我们可以看到,年龄大于22的学生年龄已经被替换成了0。其中,df['年龄']>22是筛选出年龄大于22的学生数据,'年龄'是要替换的列,=0是替换成的值。

下面再举一个例子,假设我们想把成绩低于60分的学生替换成不及格。我们同样可以使用pandas的loc方法实现:

# 替换成绩低于60分的学生成绩为'不及格'
df.loc[df['成绩']<60, '成绩'] = '不及格'

# 显示前5行数据
print(df.head())

输出结果:

     姓名  年龄 性别    院系     成绩
0   张三丰   0  男  计算机科学     不及格
1   李四白  21  女     化学       85
2   王五英   0  男  计算机科学      92
3  赵六黑  20  女     生物       不及格
4  孙七红   0  男     数学       不及格

我们可以看到,成绩低于60分的学生成绩已经被替换成了'不及格'。

总结

按条件替换列中的值是数据分析和处理中非常常见的操作,本文介绍了使用pandas库实现的方法。我们可以通过loc方法对符合条件的数据进行筛选,并替换成指定的值。