You need to enable JavaScript to run this app. 如何按time列取值将groupby筛选出的target元素拆分为独立列表
优惠活动
大模型
产品
解决方案
定价
更多

如何按time列取值将groupby筛选出的target元素拆分为独立列表

实现方法

你只需要在原有逻辑的基础上,对筛选排序后的结果再按time字段分组,将同time的target聚合成列表即可,修改后的完整代码如下:

import numpy as np
import pandas as pd

data=[[1,1,2,2,'A'],
      [2,5,5,1,'A'],
      [3,7,9,4,'B'],
      [1,5,1,9,'B'],
      [1,8,2,8,'C'],
      [2,8,5,10,'C'],
      [0,1,2,3,'D'],
       [1,1,1,2,'E'] ,
        [0,1,1,5,'F']]
    

df=pd.DataFrame(data, columns=['time','x','y','target','categ'])

# 原有筛选逻辑后新增按time分组聚合的步骤
res_target = df.loc[df.groupby('categ')['time'].transform('max').eq(df['time']), ['time', 'target']]\
            .sort_values('time')\
            .groupby('time', sort=False)['target']\
            .apply(list)\
            .tolist()
print(res_target)

运行后输出即为你需要的[[3, 5], [2], [1, 10], [4]]。

修改说明

  1. 原有逻辑已经完成了「筛选每个categ分组time最大值对应行、按time排序」的步骤,只需要补充后续分组聚合操作即可
  2. 新增的groupby('time', sort=False)会按time值拆分数据,sort=False保留了之前按time排序的结果,避免分组顺序错乱
  3. apply(list)会把每个time分组下的所有target值合并为一个子列表,最后调用tolist()就得到嵌套的目标结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 12:27:03