点击查看数据样本我试图用每个Item_Identifier
(每种商品类型)的Item_Visibility
值来替换Item_Visibility
的值,但出现了错误:
ValueError: Wrong number of items passed 5, placement implies 1
data['Item_Visibilty'] = data.groupby('Item_Identifier').transform( lambda x: x.replace(x.mean()))
回答:
据我对您问题的理解:您希望将每个Item_Identifier
唯一值的Item_Visibility
的平均值填入Item_Visibility
列中。我猜测,Item_Identifier
在这里代表一组商品,因为如果不是这样,进行分组并计算平均值就没有意义了。
回答您的问题:
# 创建样本数据data = pd.DataFrame(np.random.rand(4000,2),columns=['Item_Identifier','Item_Visibility'])data.loc[:,'Item_Identifier']= data.loc[:,'Item_Identifier'].apply( lambda x: 'id1' if x> 0.4 else 'id2')# 创建映射表,以便我们可以映射值map_table = data.groupby('Item_Identifier').mean()# 映射值data.loc[:,'Item_Visibility'] = data.loc[:,'Item_Identifier'].map( map_table.to_dict()['Item_Visibility'])
希望这对您有帮助!