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

如何对长度不一的Python Pandas groupby对象执行切片操作?

解决方案

你可以通过以下两种常用方式实现选中每个分组除最后一条外的所有内容:

  • 方法1:使用apply结合iloc切片(兼容性最好,适配所有Pandas版本)
    要获取完整行数据,直接执行:
result = grouped_by_Set.apply(lambda x: x.iloc[:-1]).reset_index(drop=True, level=0)

如果仅需要获取Value列的数据,可以简化为:

result_value = grouped_by_Set['Value'].apply(lambda x: x.iloc[:-1])
  • 方法2:使用groupby.head方法(适配Pandas 1.1.0及以上版本)
    head支持传入可调用对象动态计算每个分组要取的行数:
result = grouped_by_Set.head(lambda x: len(x)-1)

原方案失效原因

nth方法不支持Python原生的切片语法,仅支持传入单个整数、整数列表来指定要提取的行位置,因此0:-1的写法无法被识别。

内容的提问来源于stack exchange,提问作者H. Vabri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 09:09:03