pandas如何按指定列的不同值分组拆分出多个独立DataFrame
实现方案
已知a列所有取值的场景
直接按列值筛选即可得到对应分组的独立DataFrame:
# 筛选a列值为aaa的分组 df_aaa = df[df['a'] == 'aaa'] # 筛选a列值为bbb的分组 df_bbb = df[df['a'] == 'bbb'] # 筛选a列值为ccc的分组 df_ccc = df[df['a'] == 'ccc']
未知a列所有取值的场景
用groupby方法自动识别所有唯一分组,统一存储为字典即可,不需要提前枚举a列的取值:
# 生成分组字典,键为a列的取值,值为对应分组的DataFrame grouped_df = dict(tuple(df.groupby('a'))) # 调用方式:直接按键取值即可,比如获取a列值为aaa的分组 print(grouped_df['aaa'])
如果需要对所有分组批量做处理,直接遍历groupby对象即可:
for group_val, group_data in df.groupby('a'): # group_val为当前分组的a列取值,group_data为对应分组DataFrame # 此处添加分组处理逻辑 print(f"分组值:{group_val}") print(group_data)
该方法适配数千行甚至更大规模的数据集,只要pandas可以正常加载原始DataFrame就能正常运行。
内容的提问来源于stack exchange,提问作者loutsi1
相关产品推荐
相关产品推荐

