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

如何用Python按4个国家12个月生成48个指定格式的DataFrame

批量生成国家-月份组合的DataFrame解决方案

现有onlineretail数据集,包含InvoiceNo、Description、Country、Month列,涉及的国家列表:

countries = ["France", "USA", "Mexico", "Brazil"]

涉及的月份列表:

months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"]

需要生成48个对应国家+月份组合的DataFrame,每个DataFrame的处理逻辑为筛选对应国家和月份的数据,再按InvoiceNo和Description分组求和、转置并填充空值。以下是两种实现方式:

方法一:用字典存储(推荐)

这种方式避免命名空间混乱,便于统一管理和调用:

# 定义国家和月份列表
countries = ["France", "USA", "Mexico", "Brazil"]
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"]

# 初始化字典存储所有组合的DataFrame
data_dict = {}

for country in countries:
    for month in months:
        # 生成字典键名,格式为"Data_国家_月份"
        key = f"Data_{country}_{month}"
        # 执行数据处理逻辑
        processed_df = onlineretail[(onlineretail.Country == country) & (onlineretail.Month == month)]\
            .groupby(['InvoiceNo', 'Description'])['Quantity'].sum().unstack().reset_index().fillna(0)\
            .set_index('InvoiceNo')
        # 将结果存入字典
        data_dict[key] = processed_df

调用示例:data_dict["Data_France_Jan"]即可获取对应组合的DataFrame。

方法二:生成独立全局变量

如果需要直接生成如Data_France_Jan的独立变量,可通过修改全局命名空间实现:

countries = ["France", "USA", "Mexico", "Brazil"]
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"]

for country in countries:
    for month in months:
        # 生成变量名
        var_name = f"Data_{country}_{month}"
        # 执行数据处理逻辑
        processed_df = onlineretail[(onlineretail.Country == country) & (onlineretail.Month == month)]\
            .groupby(['InvoiceNo', 'Description'])['Quantity'].sum().unstack().reset_index().fillna(0)\
            .set_index('InvoiceNo')
        # 将变量注入全局命名空间
        globals()[var_name] = processed_df

运行后直接输入Data_France_Jan即可调用对应DataFrame。

注意事项

  • 方法二适合临时调试场景,但大量独立变量会增加代码维护难度,优先推荐使用字典存储。
  • 若数据集规模较大,生成48个DataFrame会占用较多内存,建议按需生成或优化数据处理逻辑。

内容的提问来源于stack exchange,提问作者P.t

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:20:23