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

Python新手求助:按Lieferung列拆分CSV文件至多个文件

按指定列分组生成多个CSV文件的Python实现

方法一:使用Python标准库csv(无需额外安装依赖)

适合不想安装第三方库的新手,完全依赖Python自带模块:

import csv
from collections import defaultdict

input_file = 'main.csv'
# 用defaultdict自动存储每个Lieferung对应的行数据
groups = defaultdict(list)

with open(input_file, mode='r', encoding='utf-8') as f:
    reader = csv.DictReader(f, delimiter=';')
    header = reader.fieldnames
    # 遍历每行数据,按Lieferung值分组
    for row in reader:
        lieferung_val = row['Lieferung']
        groups[lieferung_val].append(row)

# 为每个分组生成独立CSV文件
for lieferung, rows in groups.items():
    output_file = f"{lieferung}.csv"
    with open(output_file, mode='w', encoding='utf-8', newline='') as f:
        writer = csv.DictWriter(f, fieldnames=header, delimiter=';')
        writer.writeheader()
        writer.writerows(rows)

关键说明:

  • csv.DictReader按字典格式读取数据,直接通过列名Lieferung取值
  • defaultdict自动为新的Lieferung值创建空列表,省去手动判断键是否存在的步骤
  • 严格使用;作为分隔符,和输入文件格式匹配,保留原表头结构

方法二:使用pandas(代码更简洁)

如果愿意安装第三方库,pandas能大幅简化代码:

  1. 先安装pandas:
pip install pandas
  1. 实现代码:
import pandas as pd

# 读取输入文件,指定分隔符为;
df = pd.read_csv('main.csv', sep=';')
# 按Lieferung列分组,逐个保存为CSV
for lieferung, group in df.groupby('Lieferung'):
    group.to_csv(f"{lieferung}.csv", sep=';', index=False, encoding='utf-8')

关键说明:

  • groupby('Lieferung')一键完成分组操作
  • to_csv保存时通过index=False避免写入多余的索引列,保证输出文件结构和原文件一致

两种方法都能满足需求,新手可先尝试第一种理解底层逻辑;追求效率和简洁的话,第二种方法更合适。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:22:16