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日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探