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

如何实现两个CSV文件的横向列合并而非行追加?

解决CSV横向按行匹配合并的问题

我懂你现在的困扰——本来想把两个CSV的列横向对应行合并成包含Num和Num2的新文件,结果操作变成了把一个文件的内容追加到另一个下面。下面给你两种实用的解决办法:

方法1:使用Python原生csv模块(无需额外安装库)

如果不想安装第三方库,用Python自带的csv模块就能实现,核心思路是同步读取两个文件的每一行,把对应行的内容合并后写入新文件:

import csv

# 替换成你的实际文件路径
input_paths = ["File1.csv", "File2.csv"]
output_path = "File3.csv"

# 同时打开三个文件进行读写操作
with open(input_paths[0], 'r', newline='') as file1, \
     open(input_paths[1], 'r', newline='') as file2, \
     open(output_path, 'w', newline='') as file3:
    
    # 用DictReader读取,方便按列名处理
    reader1 = csv.DictReader(file1)
    reader2 = csv.DictReader(file2)
    
    # 定义输出文件的列名:合并两个文件的列
    output_fieldnames = reader1.fieldnames + reader2.fieldnames
    writer = csv.DictWriter(file3, fieldnames=output_fieldnames)
    
    # 写入表头
    writer.writeheader()
    
    # 同步遍历两个文件的行,合并后写入
    for row_from_file1, row_from_file2 in zip(reader1, reader2):
        # 合并两行的字典数据
        merged_row = {**row_from_file1, **row_from_file2}
        writer.writerow(merged_row)

说明:

  • 用zip同步遍历两个文件的行,确保每行是一一对应的
  • 如果两个文件行数不一致,zip会以行数较少的那个文件为准,超出的行不会被处理
  • 这种方法不需要额外安装依赖,适合轻量场景

方法2:使用Pandas库(更简洁高效)

如果经常处理CSV数据,Pandas会让操作更简单,几行代码就能完成横向合并:

import pandas as pd

# 读取两个CSV文件
df1 = pd.read_csv("File1.csv")
df2 = pd.read_csv("File2.csv")

# 横向合并(按行索引对齐,对应行匹配)
merged_df = pd.concat([df1, df2], axis=1)

# 写入新CSV,index=False表示不写入行索引
merged_df.to_csv("File3.csv", index=False)

说明:

  • axis=1参数指定横向合并,默认按行索引对齐,正好符合你要的“对应行数值一一匹配”的需求
  • 如果两个文件行数不一致,缺失的行会自动填充NaN,你可以用merged_df.dropna()删除缺失行,或者用fillna()填充默认值
  • 注意:如果两个文件有重复的列名,合并后会自动添加后缀区分(比如Num和Num.1),你的场景里列名是Num和Num2,不会有这个问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:24:49