Pandas groupby:当前组的坐标

尤内罗

假设我有一个数据框

import pandas as pd
df = pd.DataFrame({'group':['A','A','B','B','C','C'],'score':[1,2,3,4,5,6]})

首先,比如说,我想计算各组的分数总和。我通常会

def group_func(x):
    d = {}
    d['sum_scores'] = x['score'].sum()
    return pd.Series(d)
df.groupby('group').apply(group_func).reset_index()

现在假设我要修改group_func,但这种修改要求我知道当前输入的组标识x我在函数的定义内尝试过x['group'],但都没有奏效。x[group].iloc[0]

函数有没有办法group_func(x)知道当前输入的定义坐标x

在这个玩具示例中,比如说,我只想得到:

pd.DataFrame({'group':['A','B','C'],'sum_scores':[3,7,11],'name_of_group':['A','B','C']})

显然最后一列只是重复第一列。我想知道如何使用类似group_func(x). 比如:当group_func处理x与组“A”对应的 并为 生成值 3 时sum_scores,如何在 的本地范围内提取当前身份“A” group_func

贝尼

只需添加.name

def group_func(x):
        d = {}
        d['sum_scores'] = x['score'].sum()
        d['group_name'] = x.name # d['group_name'] = x['group'].iloc[0] 
        return pd.Series(d)
    
df.groupby('group').apply(group_func)
Out[63]: 
       sum_scores group_name
group                       
A               3          A
B               7          B
C              11          C

您的代码修复请参阅有关添加标记的行''

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章