正如标题所示我将一列重新分配为索引,但我希望该列仅作为索引出现。
df.set_index(df['col_name'], drop = True, inplace = True)
我理解的文档说明上面的内容会将列重新分配给df并删除初始列。但是当我打印出df时,列现在是重复的(作为索引,仍然是列)。任何人都可以指出我遗失的地方吗?
答案 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)