📅  最后修改于: 2023-12-03 15:18:15.326000             🧑  作者: Mango
在数据分析中,经常需要清洗数据,其中包括处理缺失值。在 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 用另一个列中的值替换空值的方法。