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

无公共列的两个大CSV文件按索引列合并的技术需求

按索引合并两个大CSV文件

现有两个各包含200万行数据的CSV文件,结构如下:

first.csv:

h1,h2
2,3
4,5

second.csv:

h3,h4
5,6
7,8

需要按索引(行号)将两文件合并,得到如下格式的merged.csv:

h1,h2,h3,h4
2,3,5,6
4,5,7,8

以下是两种高效的实现方法:

方法一:Python pandas(跨平台,灵活可控)

如果需要后续对数据做进一步处理,或者在Windows环境下操作,推荐用pandas实现。针对大文件,可选择分块处理避免内存溢出:

常规合并(内存充足时)

import pandas as pd

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

# 按行索引横向合并(axis=1表示列方向拼接)
merged_df = pd.concat([df1, df2], axis=1)

# 保存结果,index=False避免写入额外的索引列
merged_df.to_csv("merged.csv", index=False)

分块合并(内存紧张时)

import pandas as pd

chunk_size = 100000  # 每次处理10万行,可根据内存调整
# 分块读取两个文件
chunk_reader1 = pd.read_csv("first.csv", chunksize=chunk_size)
chunk_reader2 = pd.read_csv("second.csv", chunksize=chunk_size)

# 先写入合并后的表头
with open("merged.csv", "w", encoding="utf-8") as f:
    header1 = pd.read_csv("first.csv", nrows=0).columns.tolist()
    header2 = pd.read_csv("second.csv", nrows=0).columns.tolist()
    f.write(",".join(header1 + header2) + "\n")

# 逐块合并并追加写入文件
for chunk1, chunk2 in zip(chunk_reader1, chunk_reader2):
    merged_chunk = pd.concat([chunk1, chunk2], axis=1)
    merged_chunk.to_csv("merged.csv", mode="a", header=False, index=False, encoding="utf-8")

方法二:命令行paste工具(Linux/macOS,极速高效)

如果在类Unix环境下,系统自带的paste工具是处理大文件合并的最优选择,内存占用极低,速度极快:

# 用逗号作为分隔符,按行合并两个文件,输出到merged.csv
paste -d ',' first.csv second.csv > merged.csv

该命令直接按行号将两个文件的对应行拼接,用逗号分隔,完美匹配需求,无需额外处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:00:24