如何用 Pandas 合并 CSV 与 Excel 文件并识别数值差异
作者:WarmHope
时间:2026-05-03
浏览:0
面对结构不一致的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)。
这套流程清晰直接,既适合数据处理的初学者快速上手,也能很好地满足日常数据稽核与自动化报表生成的需求。下次再遇到结构混乱的源数据,不妨试试这个方法。
作者最新文章
Photoshop图层阵列怎么做?复制多个图层并整齐排列
2026-09-22 16:42
3dmax动画技巧总结:动画制作步骤与渲染视频教程
2026-09-22 14:47
思源笔记
2026-09-16 17:42
在线PDF转TXT操作步骤与乱码排查指南
2026-09-04 13:02
PDF加水印后如何检查显示效果?在线工具操作步骤与避坑指南
2026-09-03 13:02
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































