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

Python如何通过for循环批量导出月份DataFrame为csv并自动提取月份列表

问题1:批量导出DataFrame为CSV的代码修正

错误原因

你写的df_{}.format(i)是非法语法,Python无法直接将字符串格式化结果作为变量名调用,需要通过变量空间映射或者预存字典的方式实现动态变量调用。

可行解决方案

方案1:直接通过全局变量空间调用(快速适配你的现有代码)

import pandas as pd
months = ['may','jun','jul','aug']
for i in months:
    globals()[f'df_{i}'].to_csv(f'raw_master_{i}.csv', encoding='utf_8_sig')

注:如果你的DataFrame是在函数内部定义的,把globals()替换为locals()即可

方案2:优先推荐:将DataFrame存入字典后批量操作

这种写法结构更清晰,后续对月份数据做其他批量操作也更方便:

# 先把所有DataFrame存入字典
df_dict = {
    'may': df_may,
    'jun': df_jun,
    'jul': df_jul,
    'aug': df_aug
}
# 批量导出
for month, df in df_dict.items():
    df.to_csv(f'raw_master_{month}.csv', encoding='utf_8_sig')
问题2:自动提取当前环境中的月份列表

可以通过遍历当前变量名,筛选符合规则的DataFrame来自动生成months列表,无需手动定义:

import pandas as pd
months = []
# 遍历全局变量的键名
for var_name in globals().keys():
    # 筛选符合df_xxx格式、且是pandas DataFrame类型的变量
    if var_name.startswith('df_') and isinstance(globals()[var_name], pd.DataFrame):
        # 提取月份部分
        months.append(var_name.split('_')[1])
# 输出得到的months就是['may','jun','jul','aug']
print(months)

注:如果当前环境有其他df_开头的DataFrame不想纳入范围,可以加额外的字符串判断过滤即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:57:02