分区上的聚合 - 熊猫数据框

Posted

技术标签:

【中文标题】分区上的聚合 - 熊猫数据框【英文标题】: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')

非常感谢您的阅读!

【问题讨论】:

【参考方案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

【讨论】:

以上是关于分区上的聚合 - 熊猫数据框的主要内容,如果未能解决你的问题,请参考以下文章

分区上的火花scala数据框功能

如何按天聚合熊猫数据框

将分组的聚合唯一列添加到熊猫数据框

通过熊猫中的字符串列聚合数据框[重复]

熊猫数据框中的行排序和聚合

熊猫:连接数据框时如何聚合两个列表列