Python Pandas按指定表头拆分CSV文件报错求助(KeyError)
问题解决:Pandas拆分CSV文件报错及正确实现
错误原因分析
你写的代码存在两个关键问题:
- 语法错误:
header ={'id1,id2,id3,id4,id5,q1,q1_a']混合使用了大括号与方括号,且所有列名被写成单一字符串,Pandas无法识别为合法的列名列表。 - 逻辑缺失:未针对q1、q2、q3分别定义对应列并生成目标文件,仅处理了一次输出。
正确实现代码
import pandas as pd # 读取CSV文件,read_csv直接返回DataFrame,无需额外转换 df = pd.read_csv('sample.csv') # 提取固定的ID列,避免重复编写 id_columns = ['id1', 'id2', 'id3', 'id4', 'id5'] # 生成q1.csv q1_columns = id_columns + ['q1', 'q1_a'] df[q1_columns].to_csv('q1.csv', index=False) # 生成q2.csv q2_columns = id_columns + ['q2', 'q2_a'] df[q2_columns].to_csv('q2.csv', index=False) # 生成q3.csv q3_columns = id_columns + ['q3', 'q3_a'] df[q3_columns].to_csv('q3.csv', index=False)
代码说明
pd.read_csv直接返回DataFrame对象,无需再用pd.DataFrame()二次转换。- 将重复的ID列单独提取,减少代码冗余。
- 通过拼接列名列表筛选出对应数据,
index=False用于避免保存CSV时自动添加系统索引列。
内容的提问来源于stack exchange,提问作者Sparkles
相关产品推荐
相关产品推荐

