例如,我有:
Column A Column B Column C
A_1 B_1 0
A_1 B_2 1
A_2 B_3 3
A_2 B_5 2
我想得到这个:
B_1 B_2 B_3 B_5
A_1 0 1 nan nan
A_2 nan nan 3 2
我的想法是获得A列和B列的唯一值,根据它重新创建一个新的数据帧,并通过2 for循环填充空白。使用Pandas有更好的方法吗?对于大型数据帧,我的方法需要太长时间。
答案 0 :(得分:2)
df.set_index(['Column A','Column B'])['Column c'].unstack()
输出:
Column B B_1 B_2 B_3 B_5
Column A
A_1 0.0 1.0 NaN NaN
A_2 NaN NaN 3.0 2.0
pd.crosstab(df['Column A'],df['Column B'],df['Column C'],aggfunc='sum')
df.pivot_table('Column C','Column A','Column B','sum')
df.pivot('Column A','Column B','Column C')