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

如何按公司名称列将pandas DataFrame拆分为多个子DataFrame?

解决方案

你已经完成了核心的groupby('Name')分组步骤,可通过以下几种高效方式实现拆分,完全不需要手动用iloc逐个截取:

方案1:生成子DataFrame字典(最推荐)

一行代码即可生成以公司名为键、对应子DataFrame为值的字典,调用灵活且不会污染全局命名空间:

company_dfs = {name: group for name, group in grouped_df}

# 调用示例:提取苹果公司的独立DataFrame
aapl_df = company_dfs['AAPL']

方案2:直接导出为单独CSV文件

如果需要把每个公司的数据单独存储供后续使用,可直接遍历分组对象批量导出:

for name, group in grouped_df:
    # 自定义文件名格式,这里以公司名作为文件名前缀
    group.to_csv(f'{name}_5yr_stock.csv', index=False)

方案3:动态生成独立变量(可选)

如果确实需要直接生成对应公司名的独立变量,可通过globals()动态创建,该方式变量较多时容易出现命名冲突,非必要优先选择方案1:

for name, group in grouped_df:
    # 变量名统一为小写公司名加_df后缀,比如aapl_df、msft_df
    globals()[f'{name.lower()}_df'] = group

冗余代码优化提示

你现有代码中pd.read_csv已经通过parse_dates=['date']完成了日期列的格式转换,后续不需要再重复执行df['date'] = pd.to_datetime(df['date']),可以删掉冗余行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:15:03