0

我正在尝试将 item_price 的 nan 值更改为基于以下 dask 数据框中的 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 数据帧的平均值吗?

4

1 回答 1

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 函数内部代码中所见的计算才能正常工作。

于 2019-03-01T20:16:47.953 回答