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

如何用Python将两个CSV文件指定列合并为一个列表

把两个CSV指定列合并成列表的解决方案

嘿,我明白你想要实现的需求:提取csvexample.csv的第一列(ID)和csvexample1.csv的第二列(Month),然后把它们合并成一个列表。我来帮你补全代码,并且提供两种实用的实现方式:

方法1:直观的按行读取法(适合行数一致的场景)

这种方式简单直接,如果你确定两个CSV的行数是对应的,用这个最方便:

import csv

# 先读取第一个文件的ID列
id_list = []
with open('csvexample.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)
    next(csv_reader)  # 跳过表头行,如果你的CSV没有表头就删掉这行
    for row in csv_reader:
        id_list.append(row[0])  # 取第一列(索引从0开始)

# 再读取第二个文件的Month列
month_list = []
with open('csvexample1.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)
    next(csv_reader)  # 同样跳过表头
    for row in csv_reader:
        month_list.append(row[1])  # 取第二列

# 合并成目标列表,按行对应配对
merged_result = list(zip(id_list, month_list))
print(merged_result)

运行后你会得到:[('1', 'Feb'), ('2', 'Mar'), ('3', 'May')]。要是你需要把ID转成整数,只需要把id_list.append(row[0])改成id_list.append(int(row[0]))就行。

方法2:用你一开始的defaultdict思路(适合扩展多列的场景)

如果你之后可能需要处理更多列,用defaultdict来存储每一列的数据会更灵活,这样后续扩展时不需要大改代码:

import csv
from collections import defaultdict

# 读取第一个CSV的所有列,提取ID列
csv1_columns = defaultdict(list)
with open('csvexample.csv', 'r') as csv_file:
    # 用DictReader可以直接按列名取数据,更清晰
    reader = csv.DictReader(csv_file)
    for row in reader:
        for col_name, value in row.items():
            csv1_columns[col_name].append(value)
id_list = csv1_columns['ID']

# 读取第二个CSV的所有列,提取Month列
csv2_columns = defaultdict(list)
with open('csvexample1.csv', 'r') as csv_file:
    reader = csv.DictReader(csv_file)
    for row in reader:
        for col_name, value in row.items():
            csv2_columns[col_name].append(value)
month_list = csv2_columns['Month']

# 合并列表
merged_result = list(zip(id_list, month_list))
print(merged_result)

几个关键点要注意:

  • 如果你的CSV文件没有表头,记得删掉next(reader)这一行,不然会漏掉第一行数据。
  • 用csv.DictReader比csv.reader更稳妥,因为它是按列名取数据,就算之后CSV的列顺序变了,代码也不会出错。
  • zip()函数是核心,它会把两个列表中索引相同的元素配对成元组,正好实现你要的“按行合并”效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:01:51