转置熊猫数据框并更改列标题

时间:2019-11-13 13:45:24

标签: python pandas

这个问题是重复的,从某种意义上说,我想here

所以,基本上我有以下df:

Time | A | B|

1    |10 | 20|
2    |15 | 25|

我想要:

Name | 1 | 2|

A    |10 | 15|
B    |20 | 25|

因此,首先,我尝试了以下问题的可接受解决方案:df = df.set_index('Time').T.rename_axis('Name').rename_axis(None, 1),但这给了我rename_axis() takes from 1 to 2 positional arguments but 3 were given。如果我仅尝试df.set_index('Time').T.rename_axis('Name'),则df变为:

Time | 1 | 2|

Name
A    |10 | 15|
B    |20 | 25|

即使如此,如果我用df.columns[0]打印第一列的名称,我也会得到1,而TimeName都不会。我希望第一列为Name

如何以这种方式转置我的df?希望这个问题很清楚!

谢谢

1 个答案:

答案 0 :(得分:2)

您必须指定axis=1而不是1(我认为最新版本的功能已更改),并添加DataFrame.reset_index以便将索引转换为列:

df = df.set_index('Time').T.rename_axis('Name').rename_axis(None, axis=1).reset_index()
print (df)
  Name   1   2
0    A  10  15
1    B  20  25

或者在最新的熊猫版本中,使用参数indexcolumns

df = df.set_index('Time').T.rename_axis(index='Name', columns=None).reset_index()