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

基于现有DataFrame指定列唯一值拆分生成多个新DataFrame的方法咨询

按列唯一值拆分DataFrame实现方案

使用pandas自带的groupby方法即可实现批量拆分,完全适配b列任意数量的唯一值场景,无需手动枚举值或写多条筛选语句。

核心实现代码

import pandas as pd

# 此处替换为你自己的原始DataFrame即可
origin_df = pd.DataFrame({
    'x': [1, 12, 1, 12, 1, 12],
    'y': [2, 32, 2, 32, 25, 32],
    'z': [3, 8, 3, 8, 3, 81],
    'b': ['Max', 'Max', 'Jon', 'Max', 'Jon', 'Anna']
})

# 拆分后存入字典,key为b列的唯一值,value为对应的子DataFrame
split_df_dict = {name: df for name, df in origin_df.groupby('b')}

调用方式

  • 直接通过b列的值取对应的子表:比如要取b列为Max的子表,执行split_df_dict['Max']即可,输出与你示例的df_1完全一致
  • 如果你需要生成df_1、df_2、df_3这类按顺序命名的独立全局变量,可以追加以下代码:
for idx, (name, df) in enumerate(origin_df.groupby('b'), start=1):
    globals()[f'df_{idx}'] = df

执行后直接调用df_1、df_2即可得到对应子表。

注:分组默认会按b列的值的字典序排序,如果需要按原始数据中首次出现的顺序分组,可以给groupby加参数sort=False,即origin_df.groupby('b', sort=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:15:02