Pandas 中文手册

12.5 数据筛选实战案例

Pandas数据筛选实战案例:单条件、多条件与query方法详解

Pandas 中文手册

本章节为Pandas中文学习手册的一部分,提供数据筛选的实战案例,包括单条件筛选、多条件筛选(如地区、时间段、销量复合条件)和使用query方法简化筛选,适合新手快速掌握Pandas筛选技巧。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

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语法,可以包含列名和条件,用 andor 等逻辑运算符组合。
  • 这种方法更易读和维护,尤其适合复杂的多条件筛选。

总结与扩展提示

通过本章节的实战案例,你应该已经掌握了Pandas中的三种数据筛选方法:

  • 单条件筛选:适用于简单的条件提取。
  • 多条件筛选:通过布尔索引组合,提取复合条件数据。
  • query方法:简化多条件筛选,提高代码可读性。

扩展建议:

  • 尝试修改条件或添加更多列进行练习。
  • 探索使用逻辑或 | 运算符进行条件组合。
  • 在实际项目中,优先使用query方法以保持代码简洁。

通过这些案例,你可以更自信地处理真实数据集中的筛选需求。继续学习Pandas的其他功能,如数据聚合、清洗等,以构建全面的数据分析能力。

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包