我有这个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
我怎样才能做到这一点?
答案 0 :(得分:6)
只是为了扩展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)
答案 1 :(得分:1)
您可以对数据框使用set_index方法,如此
df.set_index(df.head0)