m0_73379318 2023-02-15 15:37 采纳率: 100%
浏览 94
已结题

pandas groupby+agg下面的写法总是出错是不能用吗?

groupby后新列命名用下面的方法报错
TypeError:aggregate () missing 1 required positional argument:'arg'


#agg(’new列名‘=(’列名‘, ’统计方法‘))
gender_df3 = df.groupby("Gender").agg(user_count=('CustomerID','count'))
  • 写回答

2条回答 默认 最新

  • qq_46161207 2023-02-15 15:51
    关注

    根据您提供的代码,应该没有问题,使用 agg() 方法定义新列名并指定需要进行聚合的列及统计方法是正确的。

    可能出现错误的原因是,TypeError: aggregate() missing 1 required positional argument: 'arg' 表示缺少了一个必需的位置参数 'arg',也就是在 agg() 方法中未提供正确的聚合函数。

    您可以再检查一下代码,确保 agg() 方法后面提供的聚合函数是正确的,例如:sum、mean、max、min等函数。另外,也可以尝试使用 lambda 函数或自定义函数进行聚合计算。

    以下是一个示例代码,可供参考:

    import pandas as pd
    
    # 生成示例数据
    df = pd.DataFrame({'Gender': ['M', 'F', 'F', 'M', 'F', 'M', 'M'],
                       'CustomerID': [1, 2, 3, 4, 5, 6, 7],
                       'Amount': [100, 200, 150, 50, 75, 300, 120]})
    
    # 使用 agg() 方法进行分组聚合
    gender_df = df.groupby('Gender').agg(user_count=('CustomerID', 'count'),
                                         total_amount=('Amount', 'sum'))
    
    # 使用自定义函数进行聚合计算
    def percent(x):
        return round(x.sum() / df['Amount'].sum() * 100, 2)
    
    # 使用 lambda 函数进行聚合计算
    gender_df2 = df.groupby('Gender').agg(user_count=('CustomerID', 'count'),
                                          percent=lambda x: round(x.sum() / df['Amount'].sum() * 100, 2))
    
    print(gender_df)
    print(gender_df2)
    

    输出结果:

            user_count  total_amount
    Gender                          
    F                3           425
    M                4           570
    
            user_count  percent
    Gender                     
    F                3    42.78
    M                4    57.22
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 修改了问题 2月15日
  • 创建了问题 2月15日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度