为什么`set_index`为列名创建索引标签?

时间:2016-10-09 15:19:35

标签: python pandas

我有一个CSV文件,其开头如下:

Year,Boys,Girls
1996,333490,315995
1997,329577,313518
1998,325903,309998

当我把它读成大熊猫并设置一个索引时,它并没有达到我的期望:

df = pd.read_csv('../data/myfile.csv')
df.set_index('Year', inplace=True)
df.head()

为什么列标签有索引条目,旁边有空白值?难道这不会消失吗?

enter image description here

此外,我还不清楚如何检索1998年的值。如果我尝试df.loc['1998'],我会收到错误:KeyError: 'the label [1998] is not in the [index]'

1 个答案:

答案 0 :(得分:3)

您应该将索引的name属性设置为None

df.index.names = [None]
df.head()
#       Boys    Girls
#1996   333490  315995
#1997   329577  313518
#1998   325903  309998

至于检索1998的数据,只需丢失引号:

df.loc[1998]
#Boys     325903
#Girls    309998
#Name: 1998, dtype: int64