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

Python使用循环批量导出多个pandas DataFrame为CSV并保留原名

问题原因

你的原始代码无法运行的核心原因是:frames列表中存储的是DataFrame对象本身,你直接把对象传入文件名格式化参数时,会尝试将整个DataFrame的内容转为字符串作为文件名,自然无法得到df1、df2的预期名称。

解决方案

方案1:使用字典关联DataFrame和对应名称

这是最直观易维护的方案,直接把文件名和DataFrame绑定,同时可以把两个循环合并提升效率:

import pandas as pd
 
df1 = pd.DataFrame({'Col1':range(1,5), 'Col2':range(6,10)})
df2 = pd.DataFrame({'Col1':range(1,5), 'Col2':range(11,15)})

# 用字典存储,键为要保存的文件名,值为对应的DataFrame
frames = {'df1': df1, 'df2': df2}

for df_name, data in frames.items():
    data['New'] = data['Col1'] + data['Col2']
    # 直接用字典的键作为文件名
    data.to_csv(f'C:/Users/User/Desktop/{df_name}.csv')

方案2:使用元组列表存储(适配原有列表写法习惯)

如果你更习惯用列表存储结构,也可以把名称和DataFrame打包成元组存入列表:

import pandas as pd
 
df1 = pd.DataFrame({'Col1':range(1,5), 'Col2':range(6,10)})
df2 = pd.DataFrame({'Col1':range(1,5), 'Col2':range(11,15)})

frames = [('df1', df1), ('df2', df2)]

for df_name, data in frames:
    data['New'] = data['Col1'] + data['Col2']
    data.to_csv(f'C:/Users/User/Desktop/{df_name}.csv')

如果后续需要批量处理更多DataFrame,建议在生成DataFrame的阶段就直接存入字典,不需要额外手动维护名称映射关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 02:57:01