以下是一个示例代码,演示如何按组填充NaN值的平均值:
import pandas as pd
# 创建一个包含NaN值的DataFrame示例
data = {'group': ['A', 'A', 'A', 'B', 'B', 'B'],
'value': [1, 2, None, 4, None, 6]}
df = pd.DataFrame(data)
# 按组计算平均值
grouped_mean = df.groupby('group')['value'].mean()
# 填充NaN值
df['value'] = df.groupby('group')['value'].transform(lambda x: x.fillna(x.mean()))
print(df)
输出结果如下:
group value
0 A 1.0
1 A 2.0
2 A 1.5
3 B 4.0
4 B 5.0
5 B 6.0
在上面的代码中,我们首先创建了一个包含NaN值的DataFrame示例。然后,我们使用groupby
方法按组计算了每个组的平均值,并将结果保存在grouped_mean
变量中。
接下来,我们使用transform
方法将每个组的NaN值填充为该组的平均值。transform
方法接收一个函数作为参数,并对每个组的数据进行操作。在这里,我们使用了lambda
函数来填充NaN值,使用fillna
方法来填充每个组的平均值。
最后,我们打印出填充NaN值后的DataFrame。可以看到,NaN值已被按组的平均值填充。
上一篇:按组填充列