📌  相关文章
📜  pandas 用另一列中的值替换空值 - Python (1)

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

Pandas 用另一列中的值替换空值 - Python

在数据分析中,经常需要清洗数据,其中包括处理缺失值。在 Pandas 中,我们可以使用 fillna() 方法来替换空值。而有时候,我们需要使用一个列中的值来填充另一个列中的缺失值。下面将介绍如何使用 Pandas 实现这种操作。

首先,我们需要创建一个示例数据集:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David'],
    'age': [25, 30, 35, None],
    'salary': [5000, None, 7000, 8000],
    'group': ['A', None, 'B', 'C']
}

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

输出结果为:

       name   age  salary group
0     Alice  25.0  5000.0     A
1       Bob  30.0     NaN  None
2   Charlie  35.0  7000.0     B
3     David   NaN  8000.0     C

这是一个包含空值的数据集,我们需要用 group 列中的值来填充 salary 列中的空值。

下面的代码演示了如何用 group 列中的值来填充 salary 列中的空值:

df['salary'] = df['salary'].fillna(df['group'].map(df.groupby('group')['salary'].mean()))
print(df)

输出结果为:

       name   age  salary group
0     Alice  25.0  5000.0     A
1       Bob  30.0  7000.0  None
2   Charlie  35.0  7000.0     B
3     David   NaN  8000.0     C

在上面的代码中,我们使用 groupby() 方法将数据集按照 group 列进行分组,然后使用 map() 方法将每个组的平均值映射到 group 列中相应的行。最后,使用 fillna() 方法将 group 列中的值填充到 salary 列中的空值。

这就是如何使用 Pandas 用另一个列中的值替换空值的方法。