📌  相关文章
📜  pandas 根据条件替换值 - Python (1)

📅  最后修改于: 2023-12-03 14:45:04.528000             🧑  作者: Mango

Pandas 根据条件替换值 - Python

在处理大数据集时,我们通常需要根据一些条件对数据进行替换。Pandas是Python中处理数据的一个非常强大的库,它提供了许多方法来进行数据处理,其中就包括根据条件替换值。本文将会介绍在Pandas中如何根据条件替换值。

1. 创建示例数据

在进行操作之前,我们需要先创建一个示例数据,用于演示如何根据条件替换值。这里我们创建了一个包含五个学生信息的DataFrame,其中包含姓名、年龄和分数三个字段。

import pandas as pd

data = {'Name': ['Tom', 'Jerry', 'David', 'Jack', 'Bob'],
        'Age': [20, 19, 22, 18, 21],
        'Score': [80, 70, 90, 65, 75]}

df = pd.DataFrame(data)
print(df)

输出结果:

    Name  Age  Score
0    Tom   20     80
1  Jerry   19     70
2  David   22     90
3   Jack   18     65
4    Bob   21     75
2. 根据条件替换值
2.1 替换单个值

我们可以使用 loc 函数定位到特定的行和列,然后使用赋值操作符 = 来替换指定的值。

例如,我们可以将 Jack 的分数修改为 70,代码如下:

df.loc[df['Name'] == 'Jack', 'Score'] = 70
print(df)

输出结果:

    Name  Age  Score
0    Tom   20     80
1  Jerry   19     70
2  David   22     90
3   Jack   18     70
4    Bob   21     75
2.2 根据条件替换所有值

如果我们需要替换所有满足条件的值,我们可以直接使用条件语句来进行替换。

例如,我们可以将所有分数小于70的学生的成绩修改为70,代码如下:

df.loc[df['Score'] < 70, 'Score'] = 70
print(df)

输出结果:

    Name  Age  Score
0    Tom   20     80
1  Jerry   19     70
2  David   22     90
3   Jack   18     70
4    Bob   21     75
2.3 根据多个条件替换值

如果我们需要同时满足多个条件才能进行替换,我们可以使用 &| 运算符进行连接。

例如,我们可以将年龄在20岁以上并且分数低于80分的学生的分数替换为80分,代码如下:

df.loc[(df['Age'] >= 20) & (df['Score'] < 80), 'Score'] = 80
print(df)

输出结果:

    Name  Age  Score
0    Tom   20     80
1  Jerry   19     70
2  David   22     90
3   Jack   18     70
4    Bob   21     80
3. 总结

在本文中,我们介绍了如何在Pandas中根据条件替换值,包括单个值的替换、所有值的替换和多个条件的替换。使用这些方法,我们可以方便地对数据进行处理,满足我们的需求。