关键词

Pandas中根据条件替换列中的值的四种方式

下面我详细讲解一下“Pandas中根据条件替换列中的值的四种方式”的完整攻略。

1. 使用.loc方法进行条件替换

DataFrame.loc[]方法可以通过布尔型的条件对DataFrame对象进行赋值操作。

先来看一个示例,我们可以使用下面的代码创建一个简单的DataFrame对象,该对象包含两列数据nameage

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中根据条件替换列中的值的四种方式。

本文链接:http://task.lmcjl.com/news/17146.html

展开阅读全文