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

Pandas Groupby.first方法参数取值是否存在索引限制?

问题解答

核心原因是你对DataFrameGroupBy.first()方法的参数作用存在误解:

  • groupby.first()的第一个参数不是「要返回的分组内第n条记录的序号」,而是时间偏移参数offset,仅当分组后的索引为时间序列类型时才会生效,作用是筛选出分组中前offset时间范围内的第一条非空记录。
  • 当索引不是时间类型时,你传入的10会被直接忽略,方法会默认返回每个分组的第一条记录。你的所有分组都恰好有1条记录,所以能正常返回结果,不会触发报错。

如果你想要实现「返回每个分组内第n条记录」的需求,应该调用nth()方法:

# 取每个分组第1条记录(序号从0开始计数)
g.nth(0)
# 取每个分组第10条记录,分组行数不足时对应位置返回NaN
g.nth(9)

你可以自行测试运行g.first()(不带任何参数),得到的结果会和g.first(10)完全一致,进一步证明本次调用中传入的10没有实际作用。

另外你可以观察到返回结果中仅保留了population这一列,这是因为无有效offset参数时,first()会默认仅返回数值类型的列,字符串类型的iso_code列被自动过滤了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:15:00