我有一个非常简单的代码:
stats2 = {'a':[1,2,3,4,5,6],
'b':[43,34,65,56,29,76],
'c':[65,67,78,65,45,52],
'cac':['mns','ab','cd','cd','ab','k']}
f2 = pd.DataFrame(stats2)
f2.set_index(['cac'], inplace = True)
print(f2.ix['mns'])
print(f2['mns'])
f2.ix [' mns']工作正常。但是,f2 [' mns']报告KeyError。我试图理解为什么会那样做。这是大熊猫的工作原理吗?即使我之前设置了索引,我还必须使用ix吗?
答案 0 :(得分:3)
这是您的原始数据框:
>>> df
a b c cac
0 1 43 65 mns
1 2 34 67 ab
2 3 65 78 cd
3 4 56 65 cd
4 5 29 45 ab
5 6 76 52 k
>>> df.set_index(['cac'], inplace=True)
>>> df
a b c
cac
mns 1 43 65
ab 2 34 67
cd 3 65 78
cd 4 56 65
ab 5 29 45
k 6 76 52
因此,在pandas中设置索引只是将前计数器值(0,1,2,...,5)替换为{{(mns,ab,...,k)的新行值。 1}}列名。
cac
此命令专门搜索索引列>>> df.ix['mns']
a 1
b 43
c 65
中的行,其值等于cac
并检索其对应的元素。
注意: 由于mns
不是数据框的列名,mns
会引发密钥错误。