分区上的聚合-pandas Datafram

2024-06-26 01:52:17 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我可以在熊猫身上通过以下步骤来做到这一点,但我想寻找一种我确信应该存在的本土方法

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

TempDF= TempDF.reset_index() 

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

非常感谢你通读!


Tags: 方法dfsqlbyserver步骤over分区
1条回答
网友
1楼 · 发布于 2024-06-26 01:52:17

可以对组内聚合使用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

相关问题 更多 >