Python如何进行批量数据合并处理_Pandas合并技巧详解【教学】

2次阅读

pandas批量数据合并核心是统一列名、对齐索引、选对方式:一、用glob自动读取多csv再concat纵向叠;二、用merge按字段关联,注意on/how参数及ID类型一致;三、多表用reduce链式merge;四、合并前必查类型、去空格大小写、去重。

Python如何进行批量数据合并处理_Pandas合并技巧详解【教学】

用pandas做批量数据合并,核心就三点:统一列名、对齐索引、选对合并方式。别硬拼,先理清逻辑再写代码。

一、多个csv文件自动读取并合并

常见场景是同一格式的多个表格(比如每月销售数据),存在一个文件夹里。不用一个个pd.read_csv,用glob+循环更省事:

  • glob.glob(“data/month_*.csv”)匹配所有目标文件路径
  • [pd.read_csv(f) for f in file_list]批量读取,生成DataFrame列表
  • pd.concat(df_list, ignore_index=True)纵向堆叠,red”>ignore_index=True重置行号,避免重复索引

小技巧:如果各表字段顺序不一致,concat前可统一列顺序,比如df = df[[“id”, “name”, “amount”]]

二、按字段精准合并(merge)不是简单拼接

两个表靠某个字段关联(如用户ID),要用pd.merge(),不是concat。关键参数要盯紧:

立即学习Python免费学习笔记(深入)”;

Python如何进行批量数据合并处理_Pandas合并技巧详解【教学】

Songtell

Songtell是第一个人工智能生成的歌曲含义库

Python如何进行批量数据合并处理_Pandas合并技巧详解【教学】 164

查看详情 Python如何进行批量数据合并处理_Pandas合并技巧详解【教学】

  • on=指定共用列名;left_onright_on用于列名不同时分别指定
  • how=决定合并逻辑:“inner”(交集)、“left”(左表全保留)、“outer”(并集)
  • 合并后检查result.isna().sum(),看关键字段是否大量缺失——可能是ID类型不一致(str vs int)或空格/大小写问题

三、多表串联合并(reduce + merge)

三个及以上表按同一字段依次关联?别嵌套merge。用functools.reduce链式处理更清晰:

  • 把所有DataFrame放进列表:dfs = [df1, df2, df3]
  • 一行搞定:from functools import reduce; final = reduce(Lambda left, right: pd.merge(left, right, on=”key”), dfs)
  • 注意:所有表的“key”数据类型和清洗状态必须一致,否则中间某次merge就中断

四、合并前必做的三件事

90%的合并报错或结果异常,其实出在前期准备上:

  • 查类型:用df.dtypes确认关联字段是不是同一类型(特别是数字ID被读成Object
  • 去空格和大小写:如df[“name”] = df[“name”].str.strip().str.lower()
  • 去重检查:用df.duplicated(subset=[“key”]).sum()看关联键是否唯一,非唯一时merge会爆炸性扩行

基本上就这些。不复杂但容易忽略细节,动手前花两分钟检查字段和类型,比报错后再调试快得多。

text=ZqhQzanResources