如何用 Pandas 合并 CSV 与 Excel 文件并识别数值差异
面对结构不一致的CSV和Excel数据,如何一步到位地完成读取、对齐与合并,并生成一份清晰展示差异值和条件标记的新表格?本文将为你揭晓答案。 在日常的数据核对工作中,我们常常会遇到一个典型挑战:需要整合来自不同源头、列名不统一、日期格式各异的文件,并快速定位关键数值字段之间的偏差。今天,我们就以一个
面对结构不一致的CSV和Excel数据,如何一步到位地完成读取、对齐与合并,并生成一份清晰展示差异值和条件标记的新表格?本文将为你揭晓答案。
在日常的数据核对工作中,我们常常会遇到一个典型挑战:需要整合来自不同源头、列名不统一、日期格式各异的文件,并快速定位关键数值字段之间的偏差。今天,我们就以一个具体场景为例,手把手拆解这个流程。
假设你手头有两份数据:一份CSV文件,包含 test date、id、values 1 三列;另一份Excel文件,其表头位于第5行,包含 id、date(格式为“3/12/2024”)、values 2 三列。我们的目标很明确:按 id 关联两条记录,统一混乱的日期格式,计算 values 2 与 values 1 的差值,并自动标记出差值“是否超过2”。
下面就是一套完整、可直接复用的解决方案,兼顾了健壮性与可读性:
import pandas as pd
# 1. 分别读取 CSV 和 Excel(跳过前4行,使第5行为列名)
df_csv = pd.read_csv("test.csv")
df_excel = pd.read_excel("test.xlsx", skiprows=4)
# 2. 标准化列名,便于后续合并
df_csv = df_csv.rename(columns={"test date": "date", "values 1": "value_1"})
df_excel = df_excel.rename(columns={"values 2": "value_2"})
# 3. 统一日期格式:将 Excel 中的 date 转为 YYYY-MM-DD 字符串(与 CSV 一致)
df_excel["date"] = pd.to_datetime(df_excel["date"]).dt.strftime("%Y-%m-%d")
# 4. 基于 'id' 和 'date' 双键合并(推荐:避免仅用 id 导致多对一歧义)
merged = pd.merge(df_csv, df_excel, on=["id", "date"], how="inner")
# 5. 构建结果表,计算差异并添加布尔标记
result = merged[["date", "id", "value_1", "value_2"]].copy()
result["discrepancy"] = result["value_2"] - result["value_1"]
result["Over 2?"] = result["discrepancy"] > 2 # 自动转为布尔值,可选 .map({True: "yes", False: "no"})
print(result)
几个需要留意的关键点:
- 如果Excel的表头不在第5行,灵活调整
skiprows参数即可;更复杂的情况,可以考虑用header=None配合iloc手动指定。 - 使用
["id", "date"]双键进行合并,比单用id更稳妥,能有效防止同一ID对应多个日期时产生意外的笛卡尔积。 pd.to_datetime(...).dt.strftime()这一连招,确保了日期格式的完全对齐,避免了因字符串格式不同导致的匹配失败。- 生成的
"Over 2?"列默认为布尔型(True/False)。如果需要更直观的“yes”/“no”显示,可以在最后追加一行代码:result["Over 2?"] = result["Over 2?"].map({True: "yes", False: "no"}) - 最终的结果,可以轻松导出为新的Excel文件,方便分享:
result.to_excel("discrepancy_report.xlsx", index=False)。
这套流程清晰直接,既适合数据处理的初学者快速上手,也能很好地满足日常数据稽核与自动化报表生成的需求。下次再遇到结构混乱的源数据,不妨试试这个方法。
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理工具,可在 Windows 上完成照片修饰、选区抠图、图层合成、文字排版、绘画及生成式编辑。软件采用订阅授权,由 Creative Cloud 管理安装、更新与许
Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator
Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。













