pandas 常用哪些操作处理数据?
五个经典回答示范
我的常用链路:read_csv 读取加 dtype 指定;清洗用 dropna、fillna、drop_duplicates、astype;变换用 groupby 加 agg 聚合、merge 关联、pivot 透视;时间序列用 rolling 窗口、shift 偏移;性能上避免循环,用向量化操作和 query/filter 条件筛选,大文件用 chunksize 分块读。
我讲一个实战:三千万行订单做品类分析。直接读内存爆,用 chunk 分块聚合再合并;类别字段转 category 类型省 90% 内存;groupby 后的多个统计用一次 agg 传字典完成,比循环逐列算快几十倍;最后 merge 商品维表用 validate 参数防脏关联。整段脚本从最初跑不出来优化到 40 秒完成。
我分三档讲:基础档——索引与对齐机制,Series/DataFrame 的广播规则;进阶档——链式风格 pipe 与 assign 提升可读性、query 与 eval 减少中间拷贝、分类与稀疏类型控内存;工程档——超出内存转 polars 或 duckdb、数据管道从笔记本走向脚本与调度、结果可复现(随机种子、版本固定)。工具随数据规模演进,pandas 不是终点。
追问『merge 的坑』:多对多关系意外笛卡尔积、键类型不一致关联不上、validate 参数与 suffixes 规范;『apply 为什么慢』:逐行走 Python 层,优先向量化、map、numba;『groupby 后怎么排序取头』:sort_values 后 groupby.head(n),比 apply 取 topk 快得多。
『pandas 我就会 df.mean() 这种一行统计,复杂逻辑都写 for 循环遍历行,虽然慢点但能跑出来,反正数据分析结果对就行。』——点评:逐行循环在百万行级基本不可用;『结果对就行』在处理时效和分析迭代次数上是硬伤。DataFrame 的价值就在向量化,绕开它等于白学。
- 打开 模拟练习,选择「数据分析」方向,限时 3 分钟作答本题。
- 对照上方答题框架,逐点检查:哪些要素没覆盖、哪里表达啰嗦。
- 用自己项目的真实经历替换框架中的占位内容,重讲一遍并录音回听。
这类题在真实面试中常被追问细节,
建议进入限时模式练一遍。