使用for循环将多个DataFrame分别写入独立CSV文件的问题
解决方案
错误原因
- 循环语法错误:
range(101)只能返回单个整数序列,无法同时赋值给key、j两个变量;且范围是0~100,会包含你不需要的j=0的无效项。 - 类型错误:你通过字符串格式化得到的
x是字符串对象,并非你预先定义的DataFrame实例,因此没有to_csv方法。
可用实现方案
方案1:直接通过全局变量获取对应DataFrame(适配你当前已生成100个单独变量的场景)
# 替换为你实际的文件存储路径 path = "./csv_save_path/" # 遍历1~100的序列 for j in range(1, 101): # 从全局作用域中提取对应名称的DataFrame对象 current_df = globals()[f"Lens{j}"] # 导出为csv,和你示例的命名规则保持一致:lens 1.csv current_df.to_csv(f"{path}lens {j}.csv", index=False)
方案2:更规范的批量处理写法(建议后续处理批量对象时使用)
你可以在生成这100个DataFrame时就统一存入列表,后续处理会更便捷,不需要依赖变量名匹配:
# 生成DataFrame时直接存入列表(示例) df_list = [] for i in range(1, 101): # 替换为你实际生成Lens{i}的逻辑 temp_df = 你生成单个DataFrame的代码 df_list.append(temp_df) # 批量导出 path = "./csv_save_path/" for idx, df in enumerate(df_list, start=1): df.to_csv(f"{path}lens {idx}.csv", index=False)
内容的提问来源于stack exchange,提问作者Vineeth
相关产品推荐
相关产品推荐

