首页 > 解决方案 > pandas 按该类别的平均值填充空值

问题描述

我有这个数据集。你可以看到有一个null Valuefor Product Wheat。我想用Value该产品的类别来填充这个空值。A因此,对于小麦来说,这是具有均值的类别5+8/2=6.5

  Product     Value Category
0   Rice        5      A
1   Corn        8      A
2   Milk       17      B
3   Wheat      NaN     A
4   Ice cream   3      B

这是我尝试过的。

df[Value].fillna(df.groupby('Category')[Value].mean(),inplace=True)

但这不起作用。因为它返回每个类别的平均值。那么我该如何实现呢?谢谢你的帮助。

标签: python-3.xpandasdataframepandas-groupby

解决方案


尝试:

df['Value'] = df.groupby('Category')['Value'].transform(lambda x: x.fillna(x.mean()))

推荐阅读