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

如何基于DataFrame的ID列值批量生成对应索引列表?

按ID分组提取对应索引列表

示例数据构建

import pandas as pd

data={'ID':[1,1,2,3,6,4,2,6], 'Number': [10,20,5,6,100,90,40,5]}
df=pd.DataFrame(data)

手动方法的局限

手动指定单个ID提取索引的方式(如下代码)只能处理已知的ID值,无法应对ID值数量未知的场景:

idx_list=df.index[df.ID == 1].tolist()

自动分组解决方案

可以利用groupby按ID分组,直接通过indices属性获取每组对应的索引数组,最终得到以ID为键、索引数组为值的字典:

id_to_indices = df.groupby('ID').indices

执行后结果为:

{1: array([0, 1]), 2: array([2, 6]), 3: array([3]), 4: array([5]), 6: array([4, 7])}

如果需要将索引转为普通列表格式,可通过字典推导式进一步处理:

id_to_indices = {k: v.tolist() for k, v in df.groupby('ID').indices.items()}

此时结果为:

{1: [0, 1], 2: [2, 6], 3: [3], 4: [5], 6: [4, 7]}

这种方式无需提前知晓ID的数量,可自动为每个不同的ID值生成对应的索引列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 22:57:24