如何将列中的值作为pandas中DataFrame中的列

时间:2018-08-26 07:43:27

标签: python-3.x pandas dataframe

我当前的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,但是我没有得到期望的输出。有什么方法可以得到期望的输出吗?

1 个答案:

答案 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

编辑:如果必须将NameTerm成对重复,例如summean

df = df.groupby(['Name','Term'])['value'].sum().unstack(fill_value=0)