pandas值替换方法

  • Post category:Python

当我们在用Pandas处理数据时,有时会遇到需要对DataFrame中的某些值进行替换的情况,这时候就可以使用Pandas提供的值替换方法。本篇攻略将详细介绍Pandas值替换的常用方法,包括替换单个值、替换多个值和按条件替换。

替换单个值

要替换DataFrame中的单个值,可以使用.replace()方法。它可以接受两个参数,第一个参数是要替换的值,第二个参数是替换后的值。下面是一个示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40]}
df = pd.DataFrame(data)

df = df.replace('Charlie', 'Chris')
print(df)

输出结果为:

      name  age
0    Alice   25
1      Bob   30
2    Chris   35
3    David   40

上面的代码中,我们用Chris替换了Charlie。

替换多个值

如果要同时替换多个值,可以使用字典类型的参数。字典的键是要替换的值,而值是替换后的值。下面是一个示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40]}
df = pd.DataFrame(data)

mapping = {'Charlie': 'Chris', 'David': 'Daniel'}
df = df.replace({'name': mapping})
print(df)

输出结果为:

     name  age
0   Alice   25
1     Bob   30
2   Chris   35
3  Daniel   40

上面的代码中,我们用Chris替换Charlie,Daniel替换David。

按条件替换

如果要根据条件将DataFrame中的一些值替换成其他值,可以使用where()方法。这个方法接受一个条件,对符合条件的值进行替换。下面是一个示例:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'age': [25, 30, 35, 40]}
df = pd.DataFrame(data)

df['age'] = df['age'].where(df['age'] < 30, 100)
print(df)

输出结果为:

      name  age
0    Alice   25
1      Bob   100
2  Charlie   100
3    David   100

上面的代码中,我们将年龄大于等于30的人的年龄替换为100。