我正在尝试将item_price的nan值更改为基于item_id的平均值 在以下快捷数据框中:
all_data['item_price'] = all_data[['item_id','item_price']].groupby('item_id')['item_price'].apply(lambda x: x.fillna(x.mean()))
All_data.head()
不幸的是,我收到以下错误消息:
ValueError: cannot reindex from a duplicate axis
有什么主意如何避免此错误或以其他方式将nan值更改为dask数据框的均值?
答案 0 :(得分:0)
我找到了解决问题的办法。 Fillna和map可以代替使用:
all_data['item_price'] = all_data['item_price'].fillna(
all_data['item_id'].map(
all_data.groupby('item_id')['item_price'].mean().compute()
)
)
这消除了重复轴问题。请注意,您必须使用map函数内部代码中所示的compute,它才能正常工作。