使用布尔索引访问 DataFrame

这将是我们的示例数据框:

df = pd.DataFrame({"color": ['red', 'blue', 'red', 'blue']},
                  index=[True, False, True, False])
      color
True    red
False  blue
True    red
False  blue

访问 .loc

df.loc[True]
     color
True   red
True   red

访问 .iloc

df.iloc[True]
>> TypeError

df.iloc[1]
color    blue
dtype: object

需要注意的是,较旧的 pandas 版本没有区分布尔值和整数输入,因此 .iloc[True] 将返回与 .iloc[1] 相同的值

访问 .ix

df.ix[True]
     color
True   red
True   red

df.ix[1]
color    blue
dtype: object

如你所见,.ix 有两种行为。这在代码中是非常糟糕的做法,因此应该避免。请使用 .iloc.loc 更明确。