【问题标题】:Aggregation over Partition - pandas Dataframe分区上的聚合 - 熊猫数据框
【发布时间】:2016-06-24 15:20:16
【问题描述】:

我正在寻找基于特定分区聚合值的最佳方法,相当于

SUM(TotalCost) OVER(PARTITION BY ShopName) Earnings  ( SQL server)

我可以通过 Pandas 中的以下步骤来做到这一点,但正在寻找一种我确信应该存在的本机方法

TempDF= DF.groupby(by=['ShopName'])['TotalCost'].sum()

TempDF= TempDF.reset_index() 

NewDF=pd.merge(DF , TempDF, how='inner', on='ShopName')

非常感谢您的阅读!

【问题讨论】:

    标签: python pandas group-by dataframe partition


    【解决方案1】:

    您可以在组聚合中使用 pandas transform() 方法,例如 SQL 中的“OVER(partition by ...)”:

    import pandas as pd
    import numpy as np
    
    #create dataframe with sample data
    df = pd.DataFrame({'group':['A','A','A','B','B','B'],'value':[1,2,3,4,5,6]})
    
    #calculate AVG(value) OVER (PARTITION BY group)
    df['mean_value'] = df.groupby('group').value.transform(np.mean)
    
    df:
    group   value   mean_value
    A       1       2
    A       2       2
    A       3       2
    B       4       5
    B       5       5
    B       6       5
    

    【讨论】:

      猜你喜欢
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-02
      • 2018-09-20
      • 1970-01-01
      • 2017-04-01
      • 2021-12-14
      相关资源
      最近更新 更多