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

在pandas的groupby的apply方法中能否获取分组列的取值?

pandas groupby操作中apply方法获取分组列取值的方法

完全可以实现,你可以通过分组对象的name属性直接拿到当前分组对应的分组列取值。

示例实现

首先导入依赖并构造测试数据:

import pandas as pd
import numpy as np

df = pd.DataFrame([('bird', 389.0),
                   ('bird', 24.0),
                   ('mammal', 80.5),
                   ('mammal', np.nan)],
                  index=['falcon', 'parrot', 'lion', 'monkey'],
                  columns=('class', 'max_speed'))

按class列分组后,apply方法传入的每个参数x是单个分组的DataFrame,x.name就是当前分组对应的class列取值,示例用法如下:

# 示例:统计每个分组的平均速度,同时保留分组名
result = df.groupby('class').apply(lambda x: pd.Series({
    'group_class': x.name,
    'avg_max_speed': x['max_speed'].mean()
})).reset_index(drop=True)

多分组列场景说明

如果你是按多列进行分组,x.name会返回一个按分组顺序排列的元组,存储所有分组列的当前取值,按索引即可取出对应列的分组值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:54:03