Python ValueError:传递的项目数错误5,放置意味着1

Python ValueError:传递的项目数错误5,放置意味着1,python,pandas,machine-learning,data-science,Python,Pandas,Machine Learning,Data Science,我正在尝试用每个项目标识符(每个项目类型)的项目可见性值替换项目可见性。但它抛出了一个错误: ValueError:传递的项目数错误5,放置意味着1 data['Item_Visibilty'] = data.groupby('Item_Identifier').transform( lambda x: x.replace(x.mean())) 使用数据透视表- visibility_avg = data.pivot_table(values = 'Item_Visibilit

我正在尝试用每个
项目标识符
(每个项目类型)的
项目可见性
值替换
项目可见性
。但它抛出了一个错误:

ValueError:传递的项目数错误5,放置意味着1

data['Item_Visibilty'] = data.groupby('Item_Identifier').transform(
        lambda x: x.replace(x.mean()))
使用数据透视表-

visibility_avg = data.pivot_table(values = 'Item_Visibility', index = 'Item_Identifier')
#imputing  0 values with mean visibility of products
miss_bool = data['Item_Visibility'].isnull()
data.loc[miss_bool,'Item_Visibilty'] = data.loc[miss_bool,'Item_Identifier'].apply(lambda x: visibility_avg(x))

据我所知,你的问题是:你想把
Item\u可见性
的每个唯一值
Item\u标识符
的平均值放入
Item\u可见性
列中。我猜,
Item\u Identifier
,在这种情况下意味着一组项目,因为从另一方面来说,将它们分组然后取平均值是没有意义的

回答你的问题:

# sample data creation
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')
# creating map_table so we could map values
map_table = data.groupby('Item_Identifier').mean()
# mapping values
data.loc[:,'Item_Visibility'] = data.loc[:,'Item_Identifier'].map(
        map_table.to_dict()['Item_Visibility'])

希望有帮助

请包含一个数据(作为文本)作为示例,以演示您试图实现的目标(5行就足够了)我已经添加了这两行的示例。如果没有图像,请将示例数据(不太大)作为文本发布。检查也请添加输出应该是什么样子,这样我们可以比较我们的。感谢you@SreeramTP您的解决方案引发新错误:AttributeError:“Series”对象没有帮助查看我在网上找到的答案的属性“todict”。难道没有办法让这件事变得简单吗