pandas如何使用groupby [duplicate]将NaN值替换为平均值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas如何使用groupby [duplicate]将NaN值替换为平均值相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我尝试使用它来替换列功能计数中的NaN值(它的整数范围从1到10)使用groupby(client_id或client _ name),但是NaN值似乎没有。
df['feature_count'].isnull().sum()
输出是:
2254
现在我使用:
df['feature_count'].fillna(df.groupby('client_name')['feature_count'].mean(), inplace=True)
但输出仍然相同:
df['feature_count'].isnull().sum()
2254
是否有其他方法可以通过按其ID分组的列的其他非NaN值来替换NaN值?
答案
df.groupby('client_name')['feature_count'].mean()
回归系列。
但是您不希望用系列替换空值。相反,您希望使用从系列映射的平均值替换空值。
因此,您可以使用以下内容:
s = df.groupby('client_name')['feature_count'].mean()
df['feature_count'].fillna(df['client_name'].map(s), inplace=True)
更多Pandorable将是利用pd.DataFrame.transform
,它为您处理映射部分:
s = df.groupby('client_name')['feature_count'].transform('mean')
df['feature_count'].fillna(s, inplace=True)
以上是关于pandas如何使用groupby [duplicate]将NaN值替换为平均值的主要内容,如果未能解决你的问题,请参考以下文章
应用 groupby 后从组中获取特定元素-PANDAS [重复]
无法将 groupby 数据集转换为 pandas 中的 json [重复]