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

如何用Pandas GroupBy生成当前至组尾的Value值列表新列?

用Pandas GroupBy实现分组内从当前行到末尾的Value列表

当然可以实现,核心思路是按ID和Name分组后,为每个分组的Value列生成从当前行到分组最后一行的切片列表。

1. 构造示例数据

先还原你的输入DataFrame:

import pandas as pd

data = {
    'ID': [1, 1, 1, 1, 1, 1, 2, 2],
    'Name': ['John', 'John', 'John', 'John', 'Adam', 'Adam', 'Jen', 'Jen'],
    'Value': [1, 4, 10, 50, 6, 3, 9, 6]
}
df = pd.DataFrame(data)

2. 实现分组生成列表的逻辑

定义自定义函数,对每个分组的Value序列,遍历每个位置并截取从当前位置到末尾的切片,再转为列表;最后用explode将嵌套的列表展开匹配到每一行:

def generate_trailing_values(series):
    # 遍历每个索引位置,截取从当前到末尾的切片并转列表
    return [series.iloc[i:].tolist() for i in range(len(series))]

# 按ID和Name分组,应用函数后展开结果
df['NewCol'] = df.groupby(['ID', 'Name'])['Value'].apply(generate_trailing_values).explode()

3. 验证结果

执行后得到的DataFrame与你期望的完全一致:

IDNameValueNewCol
1John1[1, 4, 10, 50]
1John4[4, 10, 50]
1John10[10, 50]
1John50[50]
1Adam6[6, 3]
1Adam3[3]
2Jen9[9, 6]
2Jen6[6]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:05:21