繁体   English   中英

转置 Pandas dataframe 并更改列 header

[英]Transpose Pandas dataframe and change column header

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

所以,基本上我有以下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? 希望问题很清楚!

谢谢

您必须指定axis=1而不是1 (我认为上一个版本中的 function 已更改)并添加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

或者在最后的 pandas 版本中使用参数indexcolumns

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM