You need to enable JavaScript to run this app. 如何获取pandas groupby返回的Series的索引标签
优惠活动
大模型
产品
解决方案
定价
更多

如何获取pandas groupby返回的Series的索引标签

实现方案

你原有代码的问题出在循环逻辑:for item in summed_entries:这种写法,每次迭代拿到的是纯数值(也就是对应用户的累计工时),完全没有携带作为Series索引的用户名信息,自然没法在print里输出用户名。可通过两种方式实现需求:

方案1:循环同步提取索引与值

修改原有循环逻辑,遍历时同步拿到Series的索引和对应数值:

summed_entries = df.groupby('User')['Hours'].sum()
# 遍历同步获取索引(用户名)和对应值(累计工时)
for username, total_hours in summed_entries.items():
    if total_hours < 40:
        print(username)

注:旧版本pandas中使用iteritems()方法实现同等效果,新版本已统一替换为items()

方案2:pandas原生布尔筛选(更推荐)

不需要手写逐行判断逻辑,直接通过Series的条件索引完成筛选,运行效率更高,尤其适配大体积时间卡数据:

  1. 对聚合后的Series做条件判断,直接过滤出累计工时不足40小时的条目
  2. 从过滤结果中提取作为索引的用户名列表
    对应代码:
summed_entries = df.groupby('User')['Hours'].sum()
# 筛选累计工时<40的条目,提取对应用户名列表
incomplete_users = summed_entries[summed_entries < 40].index.tolist()
# 打印结果
for user in incomplete_users:
    print(user)

内容的提问来源于stack exchange,提问作者Jan Van Bruaene

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 17:15:07