下面我详细讲解一下“Pandas中根据条件替换列中的值的四种方式”的完整攻略。
1. 使用.loc
方法进行条件替换
DataFrame.loc[]
方法可以通过布尔型的条件对DataFrame对象进行赋值操作。
先来看一个示例,我们可以使用下面的代码创建一个简单的DataFrame对象,该对象包含两列数据name
和age
:
import pandas as pd
data = {'name': ['Tom', 'Jerry', 'Mike', 'Mark', 'Steven'], 'age': [25, 32, 28, 30, 35]}
df = pd.DataFrame(data)
print(df)
输出结果为:
name age
0 Tom 25
1 Jerry 32
2 Mike 28
3 Mark 30
4 Steven 35
现在我们想要把age
列中小于30岁的值都替换为0,可以使用.loc
方法实现:
df.loc[df['age'] < 30, 'age'] = 0
print(df)
输出结果为:
name age
0 Tom 0
1 Jerry 32
2 Mike 0
3 Mark 30
4 Steven 35
2. 使用.apply()
方法进行条件替换
DataFrame.apply()
方法可以对DataFrame对象中的每个元素应用指定的函数,并返回新的DataFrame对象。
举个例子,我们可以创建一个新的函数,它会根据特定条件对数据进行替换:
def age_replace(x):
if x < 30:
return 0
else:
return x
df['age'] = df['age'].apply(age_replace)
print(df)
输出结果为:
name age
0 Tom 0
1 Jerry 32
2 Mike 0
3 Mark 30
4 Steven 35
3. 使用numpy中的where()
函数进行条件替换
另一个实现条件替换的方法是使用numpy中的where()
函数。它会根据给定的条件返回一个新的数组,其中满足条件的元素被替换为指定的值。
下面是一个示例,我们可以使用numpy.where()
方法把age
列中小于30岁的值都替换为0:
import numpy as np
df['age'] = np.where(df['age']<30, 0, df['age'])
print(df)
输出结果为:
name age
0 Tom 0
1 Jerry 32
2 Mike 0
3 Mark 30
4 Steven 35
4. 使用.replace()
方法进行条件替换
最后一个方法是使用DataFrame.replace()
方法进行替换操作,该方法可以将DataFrame对象中指定的值全部替换成新的值。
举个例子,我们可以使用下面的代码把age
列中小于30岁的值都替换为0:
df['age'] = df['age'].replace(to_replace=df[df['age']<30]['age'].values, value=0)
print(df)
输出结果为:
name age
0 Tom 0
1 Jerry 32
2 Mike 0
3 Mark 30
4 Steven 35
以上就是Pandas中根据条件替换列中的值的四种方式。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas中根据条件替换列中的值的四种方式 - Python技术站