gpt4 book ai didi

python - 用平均值替换过滤列的 NaN 值

转载 作者:太空宇宙 更新时间:2023-11-04 02:26:03 25 4
gpt4 key购买 nike

我有一个具有以下形状的数据框:

Index([u'PRODUCT',u'RANK', u'PRICE', u'STARS', u'SNAPDATE', u'CAT_NAME'], dtype='object')

对于该数据框的每个产品,我都可以有特定日期的 NaN 值。

目标是用现有值的平均值替换每个产品的 NaN 值。

这是我尝试过但没有成功的方法:

for product in df['PRODUCT'].unique():
df = df[df['PRODUCT'] == product]['RANK'].fillna((df[df['PRODUCT'] == product]['RANK'].mean()), inplace=True)

print df

给我:

TypeError: 'NoneType' object has no attribute '__getitem__'

我做错了什么?

最佳答案

您可以使用 groupby 创建均值系列:

s = df.groupby('PRODUCT')['RANK'].mean()

然后使用这个系列来fillna值:

df['RANK'] = df['RANK'].fillna(df['PRODUCT'].map(s))

关于python - 用平均值替换过滤列的 NaN 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50396183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com