Python按行拆分CSV文件:添加表头与自定义文件名需求
问题解决:CSV拆分带表头且自定义文件名
我有一个包含1609行的CSV文件,需要拆分为1609个各含1行的独立文件。现有代码能完成拆分,但每个文件缺少表头行,同时希望用每个文件中AH列的内容作为文件名。
修改后的代码
import pandas as pd split_source_file = 'all_groups.csv' # 读取完整数据,保留表头 df = pd.read_csv(split_source_file, header=0) # 获取表头行 header = df.columns.tolist() # 遍历每一行数据 for idx, row in df.iterrows(): # 获取AH列的值作为文件名,处理非法字符(可选,根据实际情况调整) filename = f"{row['AH'].replace('/', '_').replace('\\', '_')}.csv" # 组合表头和当前行成新的DataFrame single_row_df = pd.DataFrame([row.values], columns=header) # 保存文件,包含表头,不保留索引 single_row_df.to_csv(filename, index=False)
关键修改说明
- 移除冗余代码:原代码中
random相关逻辑完全不需要,因为需求是固定每行拆分一个文件 - 统一读取数据:一次性读取完整CSV,避免循环中重复读取文件,提升效率
- 保留表头:提取原文件的表头,在生成每个单文件时将表头与当前行组合,确保每个文件都包含完整表头
- 自定义文件名:直接提取每行的AH列值作为文件名,同时处理了可能的非法字符(如斜杠),避免文件保存失败
- 简化逻辑:用
iterrows()遍历每行数据,代码更简洁易懂,逻辑清晰
内容的提问来源于stack exchange,提问作者Scott Meyer-Kukan
相关产品推荐
相关产品推荐

