在Pandas中将行名转换为列

29

我有以下的Pandas 数据帧

print(df)

     head1  head2  head3
bar     32      3    100
bix     22    NaN    NaN
foo     11      1    NaN
qux    NaN     10    NaN
xoo    NaN      2     20

我想做的是将行名bar,bix,...转换为列,以便最终我拥有类似于以下内容:

    newhead     head1  head2  head3
0   bar         32      3    100
1   bix         22    NaN    NaN
2   foo         11      1    NaN
3   qux         NaN    10    NaN
4   xoo         NaN     2     20

我该如何达成这个目标?

2个回答

56
df.index.name = 'newhead'
df.reset_index(inplace=True)
产出。
  newhead  head1  head2  head3
0     bar     32      3    100
1     bix     22    NaN    NaN
2     foo     11      1    NaN
3     qux    NaN     10    NaN
4     xoo    NaN      2     20

11
你可以用一行代码完成它。
df.rename_axis("newhead").reset_index()

1
嗨,@florian,你能告诉我你的pandas包的版本吗? - Chang Ye
@florian,代码没问题,也许你可以尝试一下: df = df.rename_axis("newhead").reset_index() - Rafael Braga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接