This question already has answers here:
How to add data from one dataframe to another using Pandas transpose?
                                
                                    (3个答案)
                                
                        
                                2年前关闭。
            
                    
我正在尝试旋转熊猫数据框,以使我的数据看起来像...

     date   | data_1 | data_2 | data_3 | data_4
-----------------------------------------------
'2017-04-01'|     100|     200|     300|    400
'2017-05-01'|     500|     222|     333|    444


看起来像...

       | '2017-04-01' | '2017-05-01'
------------------------------------
data_1 |           100|          500
data_2 |           200|          222
data_3 |           300|          333
data_4 |           400|          444


我一直在寻找透视数据框的方法,但是我无法弄清楚“索引”是什么。当我尝试向每行添加索引值时,我尝试了以下操作:

pd.pivot(index='index',
        columns='date',
        values=['data_1', 'data_2', 'data_3', 'data_4'])


但这给了我一个错误,说Length of index, columns and values must be the same

我显然不在这里。谁能指出我正确的方向?

最佳答案

使用set_index + transpose

res = df.set_index('date').T

print(res)

date    '2017-04-01'  '2017-05-01'
data_1           100           500
data_2           200           222
data_3           300           333
data_4           400           444


因此,您不需要使用pivot_table,当需要基于数据透视表执行聚合时,几乎完全保留该T。注意属性transpose()是方法的访问器。

10-08 07:06