簡體   English   中英

在 group by 之后我想對 python 中超過 5 個成員的組進行聚合,我應該怎么做?

[英]after group by I want to do aggregation on those groups with more than 5 members in python, how should I do that?

我有能源成本節約計划數據集的價值

我想回答這個問題:僅考慮至少有 5 家上市企業的 NTA,每個 NTA 的平均總儲蓄和創造的就業總數是多少?

所以我在第一部分使用了以下代碼:

df['NTA_mod']=df['NTA'].str.split('-')
df=df.explode('NTA_mod').reset_index(drop=True)

df_NTA_grp=df.groupby(['NTA_mod'])

現在我必須選擇 NTA 大於 5 的那些,我使用了以下代碼

df.groupby('NTA_mod').filter(lambda x: len(x) >= 5)

但是,我沒有得到任何回應,我不知道如何繼續回答這個問題。 我應該如何選擇那些擁有至少 5 個企業的 NTA? 我的方法正確嗎? 如果是,現在我應該如何匯總以獲得下一步的均值和總和?

你正朝着正確的方向前進。 使用aggregate方法獲取均值和總和。 aggregate可以對不同的列進行不同的操作。

df_ge_5 = df_NTA_grp.filter(lambda x: len(x) >= 5)

df_ge_5.groupby('NTA_mod').agg({ 
    'Total Savings': 'mean',
    'Job created': 'sum',
})
# Or, renaming columns with named aggregation
aggn = {
    'Average Total Savings': ('Total Savings', 'mean'),
    'Total Jobs Created': ('Job created','sum'),
}
df_ge_5.groupby('NTA_mod').agg(**aggn)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM