geekdoc-python-zh/docs/askpython/boolean-indexing.md

2.7 KiB
Raw Permalink Blame History

Python 中的布尔索引——快速指南

原文:https://www.askpython.com/python/examples/boolean-indexing

布尔值可以作为数据帧中的索引,这不是很有趣吗?布尔索引代表数据帧中的每一行。布尔索引可以帮助我们从数据集中过滤掉不必要的数据。过滤数据可以让您获得一些深入的信息,否则您可能无法找到这些信息。在本文中,我们将学习如何使用布尔索引来过滤和分割数据。所以让我们开始吧!

Python 中的布尔索引

让我们从创建一个数据帧开始。我们将使用参加竞赛的一组候选人的年龄数据创建一个数据框架。

import pandas as pd
# Creating a dictionary
data = {'Name':["Tommy","Linda","Justin","Brendon"], 'Age':[31,24,16,22]}
df = pd.DataFrame(data,index=[True,False,True,False])
print(df)

输出

        Name         Age
True     Tommy   31
False    Linda   24
True    Justin   16
False  Brendon   22

1.使用. loc []函数

这是一个优秀而简单的函数,可以帮助你根据布尔索引过滤数据。使用这个函数,我们可以过滤掉具有特定布尔值的数据。假设我们将 True 传递给。loc []函数,我们将只得到索引值为 True 的过滤数据。在这个方法中,我们不能使用整数作为布尔值。

例如:

import pandas as pd
# Creating a dictionary
data = {'Name':["Tommy","Linda","Justin","Brendon"], 'Age':[31,24,16,22]}
df = pd.DataFrame(data,index=[True,False,True,False])
print(df.loc[True])

输出:

        Name       Age
True   Tommy   31
True  Justin   16

2.使用。iloc[]函数

iloc[]函数只接受整数值,因此我们需要将整数值传递给该函数。

例如:

import pandas as pd
# Creating a dictionary
data = {'Name':["Tommy","Linda","Justin","Brendon"], 'Age':[31,24,16,22]}
df = pd.DataFrame(data,index=[1,0,0,1])
print(df.iloc[1])

输出:

Name    Linda
Age        24
Name: 0, dtype: object

3.使用。ix[]函数

这也是一种类似于上面的方法,但是在这种情况下我们可以使用整数作为布尔值。因此,例如,如果我们将索引值指定为 1 和 0我们可以过滤索引值为 0 或 1 的行。

import pandas as pd
# Creating a dictionary
data = {'Name':["Tommy","Linda","Justin","Brendon"], 'Age':[31,24,16,22]}
df = pd.DataFrame(data,index=[1,1,0,0])
print(df.ix[0])

输出:

           Name       Age
0       Justin          16
0       Brendon     22

结论

总之,我们学习了如何在 python 中使用布尔索引并过滤有用的数据。希望这篇文章对你有所帮助。