将行名称转换为Pandas中的列

29 投票
2 回答
29600 浏览
提问于 2025-04-18 18:15

我有一个这样的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 个回答

11

你可以用一行代码来实现这个。

df.rename_axis("newhead").reset_index()
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

产生

撰写回答