【问题标题】:Pandas/SQL-calculate the pecentage based on different GroupPandas/SQL-根据不同组计算百分比
【发布时间】:2017-02-15 16:17:41
【问题描述】:

我想计算每个组和一个新列的百分比 例如: 数据=

Group  Value   
  A     1
  A     2
  A     1
  B     4
  B     4
  B     8

我想得到:

Group  Value   Percentage
  A     1         0.25
  A     2         0.50
  A     1         0.25
  B     4         0.25
  B     4         0.25
  B     8         0.50

如何使用 pandas 函数或 SQL 获取它?谢谢!

【问题讨论】:

    标签: python sql pandas dataframe


    【解决方案1】:

    使用熊猫:

    df['Percentage'] = df.groupby('Group')['Value'].transform(lambda x: x / x.sum())
    

    输出:

      Group  Value  Percentage
    0     A      1        0.25
    1     A      2        0.50
    2     A      1        0.25
    3     B      4        0.25
    4     B      4        0.25
    5     B      8        0.50
    

    【讨论】:

      【解决方案2】:

      尝试使用

      SELECT A.Group, 
             A.Value, 
             ( A.Value / (SELECT Sum(b.Value) 
                          FROM   yourtable b 
                          WHERE  b.Group = A.Group) ) Percentage
      FROM   yourtable A 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-06-13
        • 1970-01-01
        • 1970-01-01
        • 2020-10-11
        • 1970-01-01
        • 1970-01-01
        • 2021-04-06
        相关资源
        最近更新 更多