如何从主DataFrame按名称分组生成多个子DataFrame
按name列分组生成子DataFrame的实现方法
方法一:用字典统一存储子DataFrame(推荐)
这种方式能避免生成大量零散变量,方便统一管理和调用分组结果:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'a': [1, 2, 3, 4], 'b': [1, 2, 3, 4], 'name': ['abc', 'xyz', 'abc', 'dfg'] }) # 按name列分组,将每个组的子DataFrame存入字典 grouped_dfs = {group_name: group_data for group_name, group_data in df.groupby('name')} # 获取指定分组的子DataFrame df_abc = grouped_dfs['abc'] print(df_abc)
输出结果:
a b name 0 1 1 abc 2 3 3 abc
方法二:动态创建独立命名变量(不推荐)
如果需要直接生成df_abc、df_xyz这类命名的独立变量,可以用globals()实现,但变量过多时易造成命名混乱,不建议大规模使用:
import pandas as pd df = pd.DataFrame({ 'a': [1, 2, 3, 4], 'b': [1, 2, 3, 4], 'name': ['abc', 'xyz', 'abc', 'dfg'] }) # 遍历分组,动态生成对应变量 for group_name, group_data in df.groupby('name'): globals()[f'df_{group_name}'] = group_data # 直接调用生成的变量 print(df_abc)
内容的提问来源于stack exchange,提问作者anonymous_horse
相关产品推荐
相关产品推荐

