我想使用df.set_index()
函数更改我的DataFrame索引列。虽然这提供了一种功能性解决方案,但它创造了一个额外的"我想摆脱的一排。
df = pd.DataFrame({'A': ['a','b','c'], 'B': ['d','e','f'], 'C': [1,2,3]})
df
看起来像这样:
A B C
0 a d 1
1 b e 2
2 c f 3
更改DataFrame索引:
df.set_index('C')
结果:
A B
C
1 a e
2 b f
3 c g
如何使数据框看起来如下?
C A B
1 a e
2 b f
3 c g
我看到了类似的问题here,但使用reset_index()
的解决方案未能提供所需的结果。我想保留我在列C
上的值,只删除额外的行。
答案 0 :(得分:5)
如果您想将C
列设为索引:
In [50]: r = df.set_index('C')
In [51]: r
Out[51]:
A B
C
1 a d
2 b e
3 c f
In [52]: r.index.name
Out[52]: 'C'
In [53]: r.columns.name is None
Out[53]: True
In [54]: r = r.rename_axis(None,0).rename_axis('C',1)
In [57]: r
Out[57]:
C A B
1 a d
2 b e
3 c f
In [55]: r.index.name is None
Out[55]: True
In [56]: r.columns.name
Out[56]: 'C'
注意:但它看起来很容易误导......
答案 1 :(得分:3)
使用[[]]
:
df[['C','A','B']]
示例:
df = pd.DataFrame({'A': ['a','b','c'], 'B': ['d','e','f'], 'C': [1,2,3]})
print(df)
A B C
0 a d 1
1 b e 2
2 c f 3
df = df[['C','A','B']]
print(df)
C A B
0 1 a d
1 2 b e
2 3 c f
答案 2 :(得分:1)
如果你只想要DataFrame
显示(打印)你想要的......
print (df[['C','A','B']].to_string(index=False))
C A B
1 a d
2 b e
3 c f