将列指定为索引并将其删除

时间:2016-04-12 11:41:10

标签: python-3.x pandas dataframe

正如标题所示我将一列重新分配为索引,但我希望该列仅作为索引出现。

 df.set_index(df['col_name'], drop = True, inplace = True)

我理解的文档说明上面的内容会将列重新分配给df并删除初始列。但是当我打印出df时,列现在是重复的(作为索引,仍然是列)。任何人都可以指出我遗失的地方吗?

2 个答案:

答案 0 :(得分:1)

您只需在set_index中设置列名col_name和参数inplace即可。如果不使用列名,但是df['a']之类的列,set_index不会删除列,则只复制它:

print df
   col_name     a  b
0     1.255  2003  1
1     3.090  2003  2
2     3.155  2003  3
3     3.115  2004  1
4     3.010  2004  2
5     2.985  2004  3

df.set_index('col_name', inplace = True)
print df
             a  b
col_name         
1.255     2003  1
3.090     2003  2
3.155     2003  3
3.115     2004  1
3.010     2004  2
2.985     2004  3

df.set_index(df['a'], inplace = True)
print df
         a  b
a            
2003  2003  1
2003  2003  2
2003  2003  3
2004  2004  1
2004  2004  2
2004  2004  3

答案 1 :(得分:1)

这适用于Python 2.x,对你也适用(3.x)!

pandas.__version__
u'0.17.0'

df.set_index('col_name', inplace = True)