我是Pandas的新手,并且在2个单独的列中有一个团队得分的数据框。这就是我所拥有的。
Game_ID Teams Score
1 Team A 95
1 Team B 85
2 Team C 90
2 Team D 72
这是我想去的地方,然后理想地去。
1 Team A 95 Team B 94
2 Team C 90 Team B 72
答案 0 :(得分:4)
您可以尝试以下操作:在row_id
的每个组中创建Game_ID
,然后通过row_id
取消堆叠,这会将您的数据转换为宽格式:
import pandas as pd
df['row_id'] = df.groupby('Game_ID').Game_ID.transform(lambda g: pd.Series(range(g.size)))
df.set_index(['row_id', 'Game_ID']).unstack(level=0).sortlevel(level = 1, axis = 1)
更新:
如果首选删除row_id
,您可以从列中删除该级别:
df1 = df.set_index(['row_id', 'Game_ID']).unstack(level=0).sortlevel(level = 1, axis = 1)
df1.columns = df1.columns.droplevel(level = 1)
df1
答案 1 :(得分:0)