You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python合并多个首行元素相同的CSV文件?

用Python合并首行元素相同的多个CSV文件

需求说明

现有多个CSV文件,它们的首列(键)完全一致,示例如下:

csv-1.csv:
Value,0
Currency,0
datetime,0
Receiver,0
Beneficiary,0
Flag,0
idx,0

csv-2.csv:
Value,0
Currency,1
datetime,0
Receiver,0
Beneficiary,0
Flag,0
idx,0

需要将这些文件合并为统一表格:首列作为公共键,后续列对应各CSV文件的取值,最终格式如下:

leftcsv-1csv-2
Value00
Currency01
datetime00
Receiver00
Beneficiary00
Flag00
idx00

Python实现函数

借助pandas库可以快速实现该功能,代码如下:

import pandas as pd
import os

def merge_csv_files(csv_file_paths, output_path=None):
    # 读取第一个文件作为合并基础
    merged_df = pd.read_csv(
        csv_file_paths[0],
        header=None,
        names=['left', os.path.basename(csv_file_paths[0])]
    )
    
    # 依次合并剩余CSV文件
    for file_path in csv_file_paths[1:]:
        df = pd.read_csv(
            file_path,
            header=None,
            names=['left', os.path.basename(file_path)]
        )
        merged_df = pd.merge(merged_df, df, on='left', how='inner')
    
    # 可选:将结果保存为CSV文件
    if output_path:
        merged_df.to_csv(output_path, index=False)
    
    return merged_df

# 使用示例
if __name__ == "__main__":
    # 替换为你的CSV文件路径列表
    target_files = ['csv-1.csv', 'csv-2.csv']
    merged_result = merge_csv_files(target_files)
    # 打印成美观的表格格式(需先安装tabulate:pip install tabulate)
    print(merged_result.to_markdown(index=False))

代码说明

  • 读取CSV时指定header=None,因为原文件无表头,自定义列名为公共键left和对应文件名
  • 通过pd.merge按left列做内连接,保证所有公共键都能匹配
  • 支持传入输出路径直接保存合并后的CSV,也可返回DataFrame用于后续处理
  • 示例中用to_markdown直接输出符合需求的表格样式

内容的提问来源于stack exchange,提问作者edche

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:15:16