【问题标题】:How to group values in pandas by quartiles and get metrics of other columns?如何按四分位数对 pandas 中的值进行分组并获取其他列的指标?
【发布时间】:2021-09-23 21:38:23
【问题描述】:

我有一个熊猫数据框。我想根据第一列中的值条件计算其他 2 列的总和和平均值,并获得每组的结果(总和、平均值)和每组中的示例数。

 
#    quartile  value1   value2
#    1         1        0.9                   
#    1         1        0.8                   
#    2         1        0.75                   
#    2         0        0.75                   
#    3         0        0.5                  
#    3         0        0.4 
#    3         1        0.3                   
#    4         0        0.1 

我想要的输出应该是这样的:


#    quartile  value1_sum   value2_avg  no_of_instances_in_val1
#    1         2            0.85        2          
#    2         1            0.75        2           
#    3         1            0.40        3          
#    4         0            0.10        1           

谁能帮忙?

【问题讨论】:

    标签: python pandas numpy


    【解决方案1】:

    假设您的数据:

    data = pd.DataFrame({"quartile" : [1, 1, 2, 2, 3, 3, 3, 4], "value1" : [1, 1, 1, 0, 0, 0, 1, 0], "value2" : [0.9, 0.8, 0.75, 0.75, 0.5, 0.4, 0.3, 0.1]})
    

    您可以通过以下方式对其进行聚合:

    data.groupby("quartile").agg({"value1" : sum, "value2" : mean, "quartile" : len})
    

    然后,您只需根据需要重命名列。

    【讨论】:

      【解决方案2】:

      为了更好地坚持你想要的输出,我们可以使用named aggregation,如下:

      (df.groupby('quartile', as_index=False)
         .agg(value1_sum=('value1', 'sum'), 
              value2_avg=('value2', 'mean'), 
              no_of_instances_in_val1=('value1', 'size'))
      )
      

      输出

         quartile  value1_sum  value2_avg  no_of_instances_in_val1
      0         1           2        0.85                        2
      1         2           1        0.75                        2
      2         3           1        0.40                        3
      3         4           0        0.10                        1
      

      【讨论】:

        猜你喜欢
        • 2021-05-26
        • 1970-01-01
        • 2021-11-25
        • 1970-01-01
        • 2017-12-13
        • 2021-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多