12.5 数据筛选实战案例
Pandas数据筛选实战案例:单条件、多条件与query方法详解
本章节为Pandas中文学习手册的一部分,提供数据筛选的实战案例,包括单条件筛选、多条件筛选(如地区、时间段、销量复合条件)和使用query方法简化筛选,适合新手快速掌握Pandas筛选技巧。
推荐工具
Pandas数据筛选实战案例:单条件、多条件与query方法详解
引言
在Pandas中,数据筛选是数据分析的基础操作,它允许我们根据特定条件从数据框(DataFrame)中提取所需数据。本章节将通过实战案例,帮助初学者轻松掌握三种常见筛选方法:单条件筛选、多条件筛选和使用query方法简化多条件筛选。我们将创建一个简单的示例数据来演示,确保内容易懂实用。
首先,导入必要的库并创建示例数据框:
import pandas as pd
# 创建示例DataFrame,模拟销售数据
data = {
'地区': ['北京', '上海', '广州', '北京', '上海', '深圳', '成都'],
'时间段': ['2023-01', '2023-01', '2023-02', '2023-02', '2023-01', '2023-03', '2023-03'],
'销量': [120, 80, 150, 90, 110, 130, 70],
'产品': ['A', 'B', 'A', 'C', 'B', 'A', 'B']
}
df = pd.DataFrame(data)
print("原始数据:")
print(df)
案例1:单条件筛选符合要求的数据行
单条件筛选是最基本的筛选方式,通过指定一个条件来筛选数据。例如,筛选出销量大于100的数据行。
# 单条件筛选:销量大于100的数据
filtered_df = df[df['销量'] > 100]
print("销量大于100的数据:")
print(filtered_df)
解释:
- 使用布尔索引
df['销量'] > 100创建一个布尔序列,表示每行销量是否大于100。 - 将这个布尔序列传递给数据框
df[...],只返回True对应的行,从而筛选出符合条件的数据。
案例2:多条件筛选,提取目标数据
多条件筛选允许我们根据多个条件组合来提取数据。例如,筛选出“某地区(如北京)、某时间段(如2023-01)、销量大于100”的数据。
# 多条件筛选:地区为北京、时间段为2023-01、销量大于100
condition1 = df['地区'] == '北京' # 地区条件
condition2 = df['时间段'] == '2023-01' # 时间段条件
condition3 = df['销量'] > 100 # 销量条件
# 使用逻辑与(&)组合条件
filtered_df = df[condition1 & condition2 & condition3]
print("地区为北京、时间段为2023-01、销量大于100的数据:")
print(filtered_df)
解释:
- 首先,为每个条件创建布尔序列。
- 使用逻辑运算符
&(与)组合这些条件。注意:在Pandas中,逻辑运算符需要用括号&而不是Python的and。 - 将组合后的布尔序列传递给数据框进行筛选。这允许我们提取符合所有复合条件的精确数据行。
案例3:用query方法简化多条件筛选
query方法是Pandas提供的一种更简洁的筛选方式,可以直接使用字符串表达式进行筛选,避免繁琐的布尔索引组合。
# 使用query方法简化多条件筛选:地区为北京、时间段为2023-01、销量大于100
query_str = "地区 == '北京' and 时间段 == '2023-01' and 销量 > 100"
filtered_df = df.query(query_str)
print("使用query方法筛选的结果:")
print(filtered_df)
解释:
df.query()方法接受一个字符串表达式,其中包含筛选条件。- 表达式使用Python语法,可以包含列名和条件,用
and、or等逻辑运算符组合。 - 这种方法更易读和维护,尤其适合复杂的多条件筛选。
总结与扩展提示
通过本章节的实战案例,你应该已经掌握了Pandas中的三种数据筛选方法:
- 单条件筛选:适用于简单的条件提取。
- 多条件筛选:通过布尔索引组合,提取复合条件数据。
- query方法:简化多条件筛选,提高代码可读性。
扩展建议:
- 尝试修改条件或添加更多列进行练习。
- 探索使用逻辑或
|运算符进行条件组合。 - 在实际项目中,优先使用query方法以保持代码简洁。
通过这些案例,你可以更自信地处理真实数据集中的筛选需求。继续学习Pandas的其他功能,如数据聚合、清洗等,以构建全面的数据分析能力。
开发工具推荐