📅  最后修改于: 2023-12-03 15:26:42.057000             🧑  作者: Mango
在处理数据时,我们经常需要根据特定条件更改列的值。Pandas 提供了多种方法来实现这个功能。本文将介绍如何在 Pandas 中根据条件更改列值。
在开始之前,我们将创建一个示例 DataFrame,用于演示如何更改列值:
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
'age': [25, 30, 35, 40, 45],
'gender': ['F', 'M', 'M', 'M', 'F']}
df = pd.DataFrame(data)
print(df)
输出结果:
| | name | age | gender | | --- | -------- | --- | ------ | | 0 | Alice | 25 | F | | 1 | Bob | 30 | M | | 2 | Charlie | 35 | M | | 3 | David | 40 | M | | 4 | Emily | 45 | F |
使用 Pandas 的 loc 函数,可以根据条件来选取行和列,并修改选取的数据。
# 将所有 F 改为 0
df.loc[df['gender'] == 'F', 'gender'] = 0
print(df)
输出结果:
| | name | age | gender | | --- | -------- | --- | ------ | | 0 | Alice | 25 | 0 | | 1 | Bob | 30 | M | | 2 | Charlie | 35 | M | | 3 | David | 40 | M | | 4 | Emily | 45 | 0 |
使用 Pandas 的 apply 函数,可以将函数应用到 DataFrame 的每一行或每一列上,并将结果返回。我们可以使用 apply 函数来实现根据条件更改列值的功能。
# 将小于 30 岁的人的性别改为 Unknown
df['gender'] = df.apply(lambda row: 'Unknown' if row['age'] < 30 else row['gender'], axis=1)
print(df)
输出结果:
| | name | age | gender | | --- | -------- | --- | ------- | | 0 | Alice | 25 | Unknown | | 1 | Bob | 30 | M | | 2 | Charlie | 35 | M | | 3 | David | 40 | M | | 4 | Emily | 45 | F |
以上就是根据条件更改 Pandas 列值的两种方法,希望可以帮助你更好地处理数据。