📌  相关文章
📜  根据条件更改 pandas 列值 - Python (1)

📅  最后修改于: 2023-12-03 15:26:42.057000             🧑  作者: Mango

根据条件更改 Pandas 列值 - Python

在处理数据时,我们经常需要根据特定条件更改列的值。Pandas 提供了多种方法来实现这个功能。本文将介绍如何在 Pandas 中根据条件更改列值。

创建一个示例 DataFrame

在开始之前,我们将创建一个示例 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 |

根据条件更改列值
方法一:使用 loc 函数

使用 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 |

方法二:使用 apply 函数

使用 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 列值的两种方法,希望可以帮助你更好地处理数据。