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

如何按RANK列拆分DataFrame子集并存入列表(不使用groupby)

按RANK列拆分DataFrame存入列表的自动化实现(无groupby版本)

核心逻辑

不需要手动编写逐值筛选代码,可自动适配任意数量的RANK取值:

  • 提取RANK列的去重值,按需排序保证子集顺序和RANK大小对应
  • 遍历所有去重后的RANK值,用布尔索引筛选对应子集,直接存入列表

代码实现

首先构造匹配示例结构的测试DataFrame:

import pandas as pd

df = pd.DataFrame({
    'ID': [1, 2, 3, 2, 2, 2],
    'GROUP': ['A', 'B', 'C', 'A', 'E', 'G'],
    'RANK': [1, 2, 3, 1, 2, 3]
})

核心拆分代码:

# 获取RANK列去重后升序排列的取值,保证子集按RANK从小到大排序
rank_values = sorted(df['RANK'].unique())
# 自动遍历所有RANK值筛选子集,存入目标列表
ranks = [df[df['RANK'] == val] for val in rank_values]

使用说明

  • 最终得到的ranks列表完全匹配需求格式:ranks[0]为RANK=1的子集、ranks[1]为RANK=2的子集,以此类推
  • 无论RANK列有多少种取值(150种甚至更多),代码无需任何修改即可自动完成拆分
  • 如果不需要按RANK值排序,去掉sorted()函数直接使用df['RANK'].unique()即可
  • 全程未使用groupby,仅靠pandas原生布尔索引实现筛选

内容的提问来源于stack exchange,提问作者its.kcl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 10:18:53