m0_57748717 2022-11-25 01:07 采纳率: 76.3%
浏览 1

pandas groupby后调用apply的问题

今天学习pandas的时候,碰到了agg和apply聚合后调用自定义函数的例子,如下所示:

df_ = pd.DataFrame(np.random.randint(5,20,(5,4)), columns=list('abcd')) 

df_['e'] = list('AABBC')
#     a   b   c   d  e
# 0  18  15   7  18  A
# 1  19  11  15   7  A
# 2  12  19  13  19  B
# 3   7  19   6  13  B
# 4   9  18   9  13  C 

def get_stats(group_):
    return {'min': group_.min(), 'max': group_.max(),
            'count': group_.count(), 'mean': group_.mean()}

df_[['a', 'e']].groupby('e').apply(get_stats)
# e
# A    {'min': [18, 'A'], 'max': [19, 'A'], 'count': ...
# B    {'min': [7, 'B'], 'max': [12, 'B'], 'count': [...
# C    {'min': [9, 'C'], 'max': [9, 'C'], 'count': [1...
# dtype: object

df_['a'].groupby(list('AABBC')).apply(get_stats)
# A  min      18.0
#    max      19.0
#    count     2.0
#    mean     18.5
# B  min       7.0
#    max      12.0
#    count     2.0
#    mean      9.5
# C  min       9.0
#    max       9.0
#    count     1.0
#    mean      9.0
# Name: a, dtype: float64

请教一下,apply的时候groupby是同一个内容,出来的结果为什么一个是索引+字典的形式,另一个是复合索引+值的Series,是因为前者groupby的是一个Dataframe,后者groupby的是一个Series吗?这两个方法传入自定义函数get_stats的时候是怎么一个执行过程呢?感激不尽

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-25 02:33
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 11月25日

悬赏问题

  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22