为什么DataFrame.loc不会在此处引发异常?

时间:2017-10-03 07:14:14

标签: pandas

为什么这样:

df_data = pd.DataFrame([[1, 2, 3], [4,5,6]], index=pd.MultiIndex.from_tuples([(1,1), (1,2)]))
print(df_data.loc[[(13,37)]])

返回填充了NaN

的不存在的行
        0   1   2
13 37 NaN NaN NaN

而不是像我尝试使用KeyError访问它时那样抛出df_data.loc[(13,37)]例外?

1 个答案:

答案 0 :(得分:1)

这是由于 功能设置扩大 ,如文档here中所述。引用文档:

  

.loc / []操作可以在设置时执行放大   该轴的非存在键。

因此,如果您想获得密钥错误,则需要使用ERROR: operator does not exist: uuid <@ text[] at character 137 代替df_data.loc[(13,37)]

示例:

df_data.loc[[(13,37)]]

以下是类似的讨论:python slicing does not give key error even when the column is missing