我有这个DF
print(df)
head0 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
我想做的是使用 head0
作为行名:
head1 head2 head3
bar 32 3 100
bix 22 NaN NaN
foo 11 1 NaN
qux NaN 10 NaN
xoo NaN 2 20
我怎样才能做到这一点?
最佳答案
只是为了扩展 nitin 的回答 set_index
:
In [100]:
df.set_index('head0')
Out[100]:
head1 head2 head3
head0
bar 32 3 100
bix 22 NaN NaN
foo 11 1 NaN
qux NaN 10 NaN
xoo NaN 2 20
请注意,这会返回 df,因此您必须像这样分配回 df:df = df.set_index('head0')
或设置参数 inplace=True
: df.set_index('head0', inplace=True)
也可以直接赋值给索引:
In [99]:
df.index = df['head0']
df
Out[99]:
head0 head1 head2 head3
head0
bar bar 32 3 100
bix bix 22 NaN NaN
foo foo 11 1 NaN
qux qux NaN 10 NaN
xoo xoo NaN 2 20
请注意,执行上述操作需要您删除无关的“head0”列,这可以通过调用 drop
来完成。像这样:df.drop('head0', axis=1)
关于python - 将特定列转换为 Pandas 中的行名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27937037/