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

如何为pandas DataFrame中各球员生成对应赛季序号列

pandas 按球员分组标注赛季序号实现方案

核心思路

按球员姓名Name字段分组,对每个球员分组内的记录按赛季年份排序后,从1开始顺序计数,计数结果就是该球员对应的赛季序号。

具体实现代码

  1. 构造示例测试数据(已有现成DataFrame可跳过这步)
import pandas as pd

df = pd.DataFrame({
    'Name': ['L.Bell', 'L.Bell', 'B.Hall'],
    'Season Year': [2012, 2013, 2022],
    'Yds': [343, 367, 0]
})
  1. 预处理排序(必做,避免同球员赛季年份乱序导致序号错误)
# 按姓名升序、同姓名下赛季年份升序排列数据,重置索引避免后续索引混乱
df = df.sort_values(by=['Name', 'Season Year'], ignore_index=True)
  1. 新增赛季序号列
# groupby.cumcount()默认从0开始计数,+1后得到从1开始的赛季序号
df['Season_Num'] = df.groupby('Name').cumcount() + 1

实现效果

运行代码后得到的DataFrame完全匹配预期结果:

NameSeason YearYdsSeason_Num
L.Bell20123431
L.Bell20133672
B.Hall202201

注意:如果同个球员存在重复的同一年赛季记录,需要先按Name+Season Year去重再做计数,否则会出现同一年对应多个序号的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 21:36:26