关于pandas中对group执行apply的疑问

在<利用Python进行数据分析>中有一个根据出生年、性别分组后计算姓名占比的示例, 相关代码如下:

def add_prop(group):
    group['prop'] = group.births / group.births.sum()
    return group
    
names = names.groupby(['year', 'sex']).apply(add_prop)

这部分有些不理解, 希望得到各位的指教

  1. apply中函数的执行方式, 是把names分组后分别传到函数中, 执行再返回, 还是针对分组后的表的每一行执行apply中的函数?

  2. 如果是传到函数中再返回的话, 返回的每一个组是怎么合并在一起的呢?

  3. 如果是针对分组表的每一行分别执行的话, 为何函数还要return呢?

阅读 4.7k
1 个回答

我的理解

  1. 传入的是分好的每一组(相当于一个选择过的df)
  2. 然后对于每组进行处理(处理的结果也是df),组的合并只是把最开始打乱的组合起来

简单点说
一个df 打散成几个小的df 然后每个小的df内部做相似的确处理 再组合起来

因为这里没用agg 所以组合不是问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进