下列:
df = pd.DataFrame(
{
"a":[11, 11, 22],
"i":[1081., 1071., 22.],
},
)
df = df.set_index("i")
# df.index = df.set_index("i").astype(int)
print df.loc[[-99999999]]
获取:
a
i
-99999999 NaN
然而,如果指数更明智地填充了整数,那么熊猫明智地抱怨:
KeyError: u'None of [[-99999999]] are in the [index]'
怎么了?为什么float和int索引的行为不同,发明魔术行的理由是什么?
解决方法:
这是一个错误.如果没有标签存在,则在使用.loc [list-of-labels]时应引发KeyError.根据docs,如果缺少任何标签,.loc [list-of-labels]将在未来提升.