Python按列值导出DataFrame为多个CSV文件报错求助
问题解决:按ID分组导出DataFrame为独立CSV文件
错误原因分析
- 变量命名冲突:
df.groupby(['id'])返回的是(分组键, 分组DataFrame)的元组,你写的for (id), id in df.groupby(['id'])将分组DataFrame也命名为id,后续调用group.to_csv时,group变量未定义,触发NameError。 - 参数错误:
pandas.DataFrame.to_csv没有directory参数,无法直接指定输出目录。
修正后的代码
import pandas as pd import os # 目标输出目录 path = "users/AR/csv files" # 确保目录存在,不存在则创建 os.makedirs(path, exist_ok=True) # 按id分组并导出 for id_val, group_df in df.groupby(['id']): # 拼接完整文件路径 full_file_path = os.path.join(path, f"{id_val}.csv") group_df.to_csv(full_file_path, index=False)
关键修改说明
- 循环变量改为
id_val(分组键)和group_df(对应分组的DataFrame),避免命名冲突 - 新增
os.makedirs确保输出目录存在,防止因目录缺失报错 - 使用
os.path.join拼接目录和文件名,保证文件生成在指定路径下 - 移除无效的
directory参数,改用标准路径拼接方式
内容的提问来源于stack exchange,提问作者Aren
相关产品推荐
相关产品推荐

