对pandas replace函数的使用方法小结

  • Post category:Python

pandas 中的 replace() 函数进行使用,通常有以下三个必要参数:

  1. to_replace:被替换的值
  2. value:要替换成的新值
  3. inplace:是否在原数据集上进行修改

下面我们来看一下具体的使用方法及示例说明。

简单替换示例

首先,我们要将一个DataFrame中的某一列中的指定值,替换成新的值。

import pandas as pd

data = pd.DataFrame({
    'Sno': [1, 2, 3, 4, 5],
    'Name': ['Tom', 'Jerry', 'Jack', 'Rose', 'Nancy'],
    'Gender': ['M', 'M', 'M', 'F', 'F']
})

# 查看原数据集
print(data)

# 将Gender列中的'M'替换成'Male'
data['Gender'].replace('M', 'Male', inplace=True)

# 查看替换后的数据集
print(data)

上述代码中,我们首先定义了一个 DataFrame,并将其打印输出,然后使用.replace()方法替换了原数据集 dataGender 列中的 ‘M’ 为 ‘Male’ ,并使用 inplace=True 将修改直接作用于原数据集 data 上。

运行上述代码,可以得到以下输出:

   Sno   Name Gender
0    1    Tom      M
1    2  Jerry      M
2    3   Jack      M
3    4   Rose      F
4    5  Nancy      F

   Sno   Name Gender
0    1    Tom   Male
1    2  Jerry   Male
2    3   Jack   Male
3    4   Rose      F
4    5  Nancy      F

多个值批量替换示例

接下来,我们来看一个有多个指定值要替换的示例。假设我们有一批考试成绩数据,想将其中60分以下的成绩都修改为不及格 ‘Fail’,90分以上的修改为 ‘Excellent’。

import pandas as pd

data = pd.DataFrame({
    'Name': ['Tom', 'Jerry', 'Jack', 'Rose', 'Nancy'],
    'Score': [67, 78, 33, 92, 89]
})

# 查看原数据集
print(data)

# 进行多个值的替换
data['Score'].replace([x for x in range(101) if x < 60], 'Fail', inplace=True)
data['Score'].replace([x for x in range(101) if x >= 90], 'Excellent', inplace=True)

# 查看替换后的数据集
print(data)

上述代码先定义了一个考试成绩的 DataFrame,然后将分数值在60以下的替换为 ‘Fail’,将分数值在90及以上的替换为 ‘Excellent’。

运行上述代码,可以得到以下输出:

     Name  Score
0     Tom     67
1   Jerry     78
2    Jack     33
3    Rose     92
4   Nancy     89

     Name      Score
0     Tom     67
1   Jerry     78
2    Jack   'Fail'
3    Rose  'Excellent'
4   Nancy  'Excellent'

通过上述示例,我们可以看到 pandasreplace() 函数在数据处理过程中非常方便。