Skip to main content
 首页 » 编程设计

python之如何在 pandas & R 中没有任何聚合的情况下转置数据帧

2025年05月04日33TianFang

我有以下数据框。

user_id item_id rank 
user1   item4   1 
user1   item2   2 
user1   item5   3 
user1   item1   4 
user1   item3   5 
user2   item5   1 
user2   item3   2 
user2   item4   3 
user2   item1   4 
user2   item2   5 

如何在 R 和 pandas 中 reshape 为以下格式?

user_id rank1   rank2   rank3   rank4   rank5 
user1   item4   item2   item5   item1   item3 
user2   item5   item3   item4   item1   item2 

我发现转置特别是在 R 中很棘手。任何优雅的标准函数/方式都可以一直工作?

请您参考如下方法:

我们可以使用 R 中 library(reshape2) 中的 dcast 将“长”格式转换为“宽”格式

library(reshape2)  
dcast(df1, user_id~paste0('rank', rank), value.var='item_id') 
#   user_id rank1 rank2 rank3 rank4 rank5 
#1   user1 item4 item2 item5 item1 item3 
#2   user2 item5 item3 item4 item1 item2