我当前的DataFrame是:
Term value
Name
A 1 35
A 2 40
A 3 50
B 1 20
B 2 45
B 3 50
我想获取一个数据框为:
Term 1 2 3
Name
A 35 40 50
B 20 45 50
我怎么得到它?我试过使用pivot_table,但是我没有得到期望的输出。有什么方法可以得到期望的输出吗?
答案 0 :(得分:1)
使用:
df = df.set_index('Term', append=True)['value'].unstack()
或者:
df = pd.pivot(df.index, df['Term'], df['value'])
print (df)
Term 1 2 3
Name
A 35 40 50
B 20 45 50
编辑:如果必须将Name
与Term
成对重复,例如sum
或mean
:
df = df.groupby(['Name','Term'])['value'].sum().unstack(fill_value=0)