我将客户ID与他们最常购买的表演类型进行对比:
Genre Jazz Dance Music Theatre
Customer
100000000001 0 3 1 2
100000000002 0 1 6 2
100000000003 0 3 13 4
100000000004 0 5 4 1
100000000005 1 10 16 14
我想要的结果是根据排名添加列名:
Genre Jazz Dance Music Theatre Rank1 Rank2 Rank3 Rank4
Customer
100000000001 0 3 1 2 Dance Theatre Music Jazz
100000000002 0 1 6 2 Music Theatre Dance Jazz
100000000003 0 3 13 4 Music Theatre Dance Jazz
100000000004 0 5 4 1 Dance Music Theatre Jazz
100000000005 1 10 16 14 Music Theatre Dance Jazz
我已经查找了一些线程,但是我能找到的最接近的东西是idxmax
。然而,这只给了我Rank1
谁能帮我得到我需要的结果
非常感谢
丹尼斯
让我们试试
stack
、cumcount
和sort_values
然后加入你的客户类型索引
使用:
详细信息:
使用^{} 沿
axis=1
获取将按降序对体裁进行排序的索引i
从沿着索引} 将数据帧
i
(即df.columns[i]
)获取的数据帧df
列创建一个新的数据帧r
,然后使用^{r
与df
连接起来:试试这个:
输出:
使用
rank
并重塑数据帧,然后使用assign
连接回原始数据帧相关问题 更多 >
编程相关推荐