如何在 pandas & R 中转置数据帧而不进行任何聚合?
How to transpose dataframe without any aggregation in pandas & R?
我有以下数据框。
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 中重塑为以下格式?
user_id rank1 rank2 rank3 rank4 rank5
user1 item4 item2 item5 item1 item3
user2 item5 item3 item4 item1 item2
我发现转置特别是在 R 中很棘手。任何优雅的标准 function/way 一直有效?
我们可以在R
中使用library(reshape2)
中的dcast
将'long'格式转换为'wide'格式
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
尝试在 pandas 中使用数据透视表。例如(在 'data.txt' 中保存数据后)
import pandas as pd
df = pd.read_table('data.txt', delim_whitespace=True)
df.pivot(index='user_id', columns='rank', values='item_id')
我有以下数据框。
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 中重塑为以下格式?
user_id rank1 rank2 rank3 rank4 rank5
user1 item4 item2 item5 item1 item3
user2 item5 item3 item4 item1 item2
我发现转置特别是在 R 中很棘手。任何优雅的标准 function/way 一直有效?
我们可以在R
中使用library(reshape2)
中的dcast
将'long'格式转换为'wide'格式
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
尝试在 pandas 中使用数据透视表。例如(在 'data.txt' 中保存数据后)
import pandas as pd
df = pd.read_table('data.txt', delim_whitespace=True)
df.pivot(index='user_id', columns='rank', values='item_id')