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

求Python/R代码:合并多份CSV文件且不重复第一列

多CSV文件合并方案(保留唯一公共列)

问题说明

现有10份CSV文件,每份包含两列,且第一列的行数、每行内容完全对应。需要将这些文件合并为一个CSV,要求第一列仅保留一份,最终文件共11列(1列公共列 + 10份文件的第二列)。

输入示例

file1.csv(A、B列):

A         B 
2007-1    100  
2007-1    4   
2007-1    30  
2007-1    22   
2007-1    13   
2007-1    12   

file2.csv(A、C列):

A         C
2007-1    33  
2007-1    56   
2007-1    34  
2007-1    3   
2007-1    55   
2007-1    68   

期望输出

A         B     C
2007-1    33    100
2007-1    56    4
2007-1    34    30
2007-1    3     22
2007-1    55    13
2007-1    68    12

Python实现(基于pandas)

import pandas as pd

# 定义所有CSV文件路径,按需修改文件名或路径
csv_files = [f"file{i}.csv" for i in range(1, 11)]

# 读取第一个文件作为基础(sep参数根据实际CSV分隔符调整,逗号分隔用sep=',')
merged_df = pd.read_csv(csv_files[0], sep=r'\s+')

# 遍历剩余文件,仅提取第二列进行拼接
for file in csv_files[1:]:
    df = pd.read_csv(file, sep=r'\s+')
    merged_df = pd.concat([merged_df, df.iloc[:, 1]], axis=1)

# 保存合并后的文件
merged_df.to_csv("merged_file.csv", index=False, sep=',')

R实现(基于dplyr+readr)

library(dplyr)
library(readr)

# 定义CSV文件列表,按需修改
csv_files <- paste0("file", 1:10, ".csv")

# 读取第一个文件(delim参数根据实际分隔符调整,逗号分隔用delim=',')
merged_df <- read_delim(csv_files[1], delim = "\\s+")

# 遍历合并剩余文件的第二列
for (file in csv_files[-1]) {
  df <- read_delim(file, delim = "\\s+")
  merged_df <- bind_cols(merged_df, select(df, 2))
}

# 保存结果
write_csv(merged_df, "merged_file.csv")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:12:18