Python 布尔索引


布尔值,例如 True & False 和 1 & 0,可以用作 Pandas DataFrame 的索引。它们可以帮助我们筛选所需的记录。在下面的示例中,我们将看到执行布尔索引操作的不同方法。

创建布尔索引

让我们考虑一个 DataFrame,其中描述了游戏数据。不同日期的各种得分在一个字典中提到。然后,我们可以使用 True 和 False 作为索引值在 DataFrame 上创建一个索引。然后我们可以打印最终的 DataFrame。

示例

 在线演示

import pandas as pd
# dictionary
game = {'Day':["Monday","Tuesday","Wednesday","Thursday","Friday"], 'points':[31,24,16,11,22]}
df = pd.DataFrame(game,index=[True,False,True,False,True])
print(df)

运行上述代码将得到以下结果

输出

               Day       points
True        Monday           31
False      Tuesday           24
True     Wednesday           16
False     Thursday           11
True        Friday           22

使用 .loc[]

此函数可用于筛选具有特定布尔值的记录。在下面的示例中,我们可以看到仅获取布尔值为 True 的记录。

示例

 在线演示

import pandas as pd
# dictionary
game = {'Day':["Monday","Tuesday","Wednesday","Thursday","Friday"], 'points':[31,24,16,11,22]}
df = pd.DataFrame(game,index=[True,False,True,False,True])
#print(df)
print(df.loc[True])

运行上述代码将得到以下结果

输出

              Day           points
True       Monday       31
True    Wednesday       16
True       Friday       22

使用 .ix[]

在此方法中,我们还使用整数作为布尔值。因此,我们将 DataFrame 中的 True 和 False 值更改为 1 和 0。然后使用它们来筛选记录。

示例

 在线演示

import pandas as pd
# dictionary
game = {'Day':["Monday","Tuesday","Wednesday","Thursday","Friday"], 'points':[31,24,16,11,22]}
df = pd.DataFrame(game,index=[1,1,0,0,1])
#print(df)
print(df.ix[0])

运行上述代码将得到以下结果

输出

        Day points
0 Wednesday     16
0 T hursday     11

更新于:2019年12月20日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告