如何从单个DataFrame中按公司维度拆分生成多个独立的DataFrame
按公司维度拆分Pandas DataFrame实现方案
前置准备
如果你还未构造原始DataFrame,可参考如下代码构造,已有原始df可直接跳过该部分:
import pandas as pd data = { "Company": ["A", "A", "A", "B", "B", "C", "C"], "Sales": [100, 200, 300, 50, 60, 10, 20] } df = pd.DataFrame(data)
实现方式
方式1:拆分结果存入字典(更推荐,便于统一管理)
将不同公司的df存在同一个字典中,键为公司名,值为对应公司的独立df,调用时直接按公司名取数即可:
company_df_dict = {company: group for company, group in df.groupby("Company")}
调用示例:
- 获取A公司df:
company_df_dict["A"] - 获取B公司df:
company_df_dict["B"]
方式2:生成独立命名的全局变量
如果需要单独的变量对应不同公司的df,可直接生成带公司标识的全局变量:
for company, group in df.groupby("Company"): globals()[f"df_{company}"] = group
调用示例:
- 获取A公司df:直接调用变量
df_A - 获取B公司df:直接调用变量
df_B
效果验证
以A公司的df为例,输出结果和需求完全一致:
Company Sales 0 A 100 1 A 200 2 A 300
内容的提问来源于stack exchange,提问作者Ridhima Sodhi
相关产品推荐
相关产品推荐

