pandas loc的指定条件索引(布尔索引)
pandas中的loc不仅仅可以用于直接的标签的索引,也可以用于指定条件的索引。
1.准备数据
首先准备一组数据:
import pandas as pd
df = pd.DataFrame({
'AAA': [120, 101, 106, 117, 114, 122],
'BBB': [115, 100, 110, 125, 123, 120],
'CCC': [109, 112, 125, 120, 116, 115],
'DDD': 'ABCDEFG'
}, index=[1, 2, 3, 4, 5, 6])
print(df)
2.单条件筛选
以筛选出其中字段"AAA"大于110的为例:
print(df)
print("=======================")
print(df.loc[df['AAA'] > 110]) # "AAA"大于100的
深入分析,我们可以看出,loc后传入的是一个Values为bool类型数据的Series,且其长度与原DataFrame的行数相等。
print(df['AAA'] > 110)
print(type(df['AAA'] > 110)) # Series类型,Values为bool类型
3.多条件筛选
loc也可以同时传入多个筛选条件,
以筛选字段"AAA"大于110且字段"CCC"大于115的数据为例:
print("=======================")
print(df.loc[(df['AAA'] > 110) & (df['CCC'] > 115)])