以下内容:
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索引的行为不同,发明魔术行的理由是什么?
答案 0 :(得分:1)
这是一个错误。如果没有标签存在,则在使用KeyError
时应引发.loc[list-of-labels]
。根据{{3}},如果任何标签丢失,.loc[list-of-labels]
将来会提升。