Pandas中的布尔索引


布尔索引帮助我们使用布尔向量从DataFrame中选择数据。我们需要一个带有布尔索引的DataFrame才能使用布尔索引。让我们看看如何实现布尔索引。

  • 创建一个数据字典。
  • 将其转换为一个DataFrame对象,并将布尔索引作为向量。
  • 现在,使用布尔索引访问数据。

请看下面的示例以了解。

示例

import pandas as pd
# data
data = {
   'Name': ['Hafeez', 'Srikanth', 'Rakesh'],
   'Age': [19, 20, 19]
}
# creating a DataFrame with boolean index vector
data_frame = pd.DataFrame(data, index = [True, False, True])
print(data_frame)

输出

如果您运行以上程序,您将获得以下结果。

          Name   Age
True    Hafeez   19
False Srikanth   20
True    Rakesh   19

现在,我们可以通过向loc[]、iloc[]、ix[]方法传递布尔值来访问DataFrame。让我们一一看看。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例

# accessing using .loc()
print(data_frame.loc[True])

输出

如果运行以上代码,您将获得以下结果。

       Name  Age
True Hafeez   19
True Rakesh   19

示例

# accessing using .iloc()
print(data_frame.iloc[1]) # iloc methods takes only integers so, we are passing 1 i
nsted of True. Both are same.

输出

如果运行以上代码,您将获得以下结果。

Name Srikanth
Age 20
dtype: object

示例

# accessing using .ix[]
# we can pass both boolean or integer values to .ix[]
print(data_frame.ix[True])
print()
print(data_frame.ix[1])

输出

如果运行以上代码,您将获得以下结果。

         Name Age
True   Hafeez 19
True   Rakesh 19

Name   Srikanth
Age       20
dtype: object

使用布尔索引的另一种方法是将布尔向量直接传递给DataFrame。它将打印所有值为True的行。让我们看一个例子。

示例

import pandas as pd
# data
data = {
   'Name': ['Hafeez', 'Srikanth', 'Rakesh'],
   'Age': [19, 20, 19]
}
# creating a DataFrame with boolean index vector
data_frame = pd.DataFrame(data)
print(data_frame)

输出

如果运行以上代码,您将获得以下结果。

      Name    Age
0   Hafeez    19
1 Srikanth    20
2   Rakesh    19

现在,我们可以将布尔向量传递给DataFrame来访问数据。

示例

# passing boolean vector to data_frame index
print(data_frame[[True, True, False]])

输出

如果运行以上代码,您将获得以下结果。我们只得到了值为**True**的行。

      Name Age
0   Hafeez 19
1 Srikanth 20

结论

如果您对布尔索引有任何疑问,请在评论区告诉我。

更新于: 2020年1月2日

2K+ 浏览量

开启您的职业生涯

通过完成课程获得认证

开始学习
广告