gpt4 book ai didi

python - 从数据透视表 reshape /转换 Pandas 数据框

转载 作者:行者123 更新时间:2023-12-01 08:38:02 25 4
gpt4 key购买 nike

我有一个包含客户建议的数据透视数据框,如下所示:

enter image description here

我想 reshape 此数据框或形成另一个新数据框,其中包含 CustomerID 列和 4 个名为 'Recommendation#1'、'Recommendation#2'、'Recommendation#3' 的新附加列和“推荐#4”,其中每列将包含每个客户得分最高的 4 个项目。我试图让它看起来像这样:

enter image description here

但是,我对如何在 python 中处理这个问题以从我的旋转数据帧中获取我想要的数据帧有点迷失。任何有关如何解决此问题的帮助或建议将不胜感激!

最佳答案

您可以使用argsort并保留每行中最高的 n 个元素:

n=4
data = df.values.argsort().T[::-1].T[:,:n]

并根据获得的数组和您指定的列构建数据框:

columns = ['Recommendation#{}'.format(i) for i in range(1,data.shape[1]+1)]
df = pd.DataFrame(df.columns[data], columns=columns, index = df.index)
print(df)

Recommendation#1 Recommendation#2 Recommendation#3 Recommendation#4
ID1 Item4 Item2 Item8 Item6
ID2 Item5 Item1 Item4 Item6
ID3 Item7 Item6 Item8 Item3

关于python - 从数据透视表 reshape /转换 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53634112/

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