Pandas 替代 SQL 常用查询操作详解

顾星河
顾星河
发布时间:2026-10-11 | 3人浏览过
原创

Pandas 能够高效完成类 SQL 的数据处理任务。本文详细演示如何通过 Pandas DataFrame 实现 SELECT 字段选择、WHERE 条件过滤、GROUP BY 分组聚合以及 LIMIT 限制行数等操作,并提供对应的 Python 代码示例与结果对照,帮助开发人员在非关系型数据库环境中快速完成表格数据查询。

Pandas 查询环境准备与数据导入

在进行任何 SQL 风格的查询前,需先将外部表格数据读入内存。以下示例读取了一份包含员工信息的 Excel 文件,并预览基础数据结构:

import pandas as pd

# 请注意:实际使用时请替换为您电脑上的有效文件路径
df = pd.read_excel("C:\\Users\\qwy\\Desktop\\data\\empdata.xlsx")
print(df)

控制台打印出包含 EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO 等字段的表格,首行索引为 0,共计 14 条员工记录。

Pandas 核心查询操作实现

第1步:指定字段查询数据(对应 SQL 的 SELECT)

目的:仅提取表中关心的列,降低内存开销。
入口/动作:在 DataFrame 对象后使用方括号,传入由目标列名构成的列表。
重要参数:字符串类型的列名列表,支持任意子集组合。
完成状态:返回一个全新的 DataFrame 对象,其中仅保留所指定的列,且默认维持原行顺序。

# 选取指定列并查看前 5 条数据
selected_df = df[['EMPNO', 'ENAME', 'JOB', 'MGR', 'HIREDATE', 'SAL', 'COMM', 'DEPTNO']].head(5)
print(selected_df)

输出结果固定显示前述 8 个字段的顶部 5 条记录,未列入列表的其他字段已被彻底剔除。

第2步:利用布尔索引进行条件过滤(对应 SQL 的 WHERE)

目的:精准定位满足特定逻辑条件的行记录。
入口/动作:构造比较运算表达式生成布尔序列,将其直接作为行掩码传递给 DataFrame。
重要参数:相等(==)、大于(>)、不等于(!=)等运算符结合具体的数值或字符串常量。
完成状态:仅当布尔表达式结果为 True 的行被保留,其余行自动过滤。

# 筛选部门编号 DEPTNO 严格等于 30 的所有人员
dept_30_df = df[df['DEPTNO'] == 30]
print(dept_30_df)

结果仅返回索引为 1, 2, 4, 5, 9, 11 的行,验证了布尔筛选机制的准确性。

第3步:通过 groupby 进行分组统计(对应 SQL 的 GROUP BY)

目的:按指定类别划分数据块,并执行计数、求和或均值等聚合分析。
入口/动作:调用 groupby('分组列') 锁定分类维度,随后链接聚合计算方法。
重要参数:分组依据的列名,或通过字典传递多列独立的聚合函数(如 np.size, np.mean)。
完成状态:返回以分组类别为索引,统计结果为值的 Series 或整合后的 DataFrame。

import numpy as np

# 统计各部门的人员总数
count_by_dept = df.groupby('DEPTNO').size()
print(count_by_dept)

# 进阶聚合:对 EMPNO 计数,同时对 SAL 计算平均值
agg_result = df.groupby('DEPTNO').aggregate({'EMPNO': np.size, 'SAL': np.mean})
print(agg_result)

输出表明 DEPTNO 10 有 3 人、20 有 5 人、30 有 6 人。第二组输出则展示了多维度的交叉统计矩阵。

第4步:限制返回记录数量(对应 SQL 的 LIMIT)

目的:获取数据样本或防止初次探查时引发性能瓶颈。
入口/动作:调用 DataFrame 内置的 head(n) 方法拦截前端数据流。
重要参数:正整数 n,代表需要从表头提取的行数。
完成状态:原始数据被安全截断,仅暴露头部 N 行,不影响底层缓存。

# 无论原始表多大,始终只拿取最前面的 5 行
limit_sample = df.head(5)
print(limit_sample)

控制台呈现索引 0 至 4 的标准记录集,行为与 LIMIT 5 完全一致。

排查建议与总结

Pandas 的逻辑引擎与传统 SQL 高度契合,熟练运用列切片、布尔掩码、分组聚合及行截取这四项核心手段,即可在 Python 环境中流畅完成各类离线报表提取工作。为确保代码顺利运行,建议在导入模块后额外确认本机已安装 openpyxl 等 Excel 读写插件,并将脚本内的绝对磁盘路径更改为实际项目文件位置。

以上就是 Pandas 执行 SQL 查询操作的详细内容,更多关于 Pandas 数据清洗与自动化办公的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表