Python技巧分享之groupby基礎(chǔ)用法詳解
模擬數(shù)據(jù)
import pandas as pd import numpy as np
employees = ["小明","小周","小孫","小王","小張"] # 5位員工
time = ["上半年", "下半年"]
df=pd.DataFrame({
"employees":np.random.choice(employees,10), # 在員工中重復(fù)選擇10次
# 另一種寫法
#"employees":[employees[x] for x in np.random.randint(0,len(employees),10)],
"time":np.random.choice(time,10),
"salary":np.random.randint(800,1000,10), # 800-1000之間的薪資選擇10個數(shù)值
"score":np.random.randint(6,12,10) # 6-11的分?jǐn)?shù)選擇10個
})
df

groupby+單個字段+單個聚合
求解每個人的總薪資金額:
total_salary = df.groupby("employees")["salary"].sum().reset_index()
total_salary

使用agg也能夠?qū)崿F(xiàn)上面的效果:
df.groupby("employees").agg({"salary":"sum"}).reset_index()

df.groupby("employees").agg({"salary":np.sum}).reset_index()

groupby+單個字段+多個聚合
求解每個人的總薪資金額和薪資的平均數(shù):
方法1:使用groupby+merge
mean_salary = df.groupby("employees")["salary"].mean().reset_index()
mean_salary

然后將上面的兩個結(jié)果進(jìn)行組合;在合并之前為了字段的名字更加的直觀,我們重命名下:
total_salary.rename(columns={"employees":"total_salary"})
mean_salary.columns = ["employees","mean_salary"]
total_mean = total_salary.merge(mean_salary) total_mean

方法2:使用groupby+agg
total_mean = df.groupby("employees")\
.agg(total_salary=("salary", "sum"),
mean_salary=("salary", "mean"))\
.reset_index()
total_mean

groupby+多個字段+單個聚合
針對多個字段的同時聚合:
df.groupby(["employees","time"])["salary"].sum().reset_index()

# 使用agg來實(shí)現(xiàn)
df.groupby(["employees","time"]).agg({"salary":"sum"}).reset_index()

groupby+多個字段+多個聚合
使用的方法是:
agg(’新列名‘=(’原列名‘, ’統(tǒng)計(jì)函數(shù)/方法‘))
df.groupby(["employees","time"])\
.agg(total_salary=("salary", "sum"),
mean_salary=("salary", "mean"),
total_score=("score", "sum")
)\
.reset_index()

到此這篇關(guān)于Python技巧分享之groupby基礎(chǔ)用法詳解的文章就介紹到這了,更多相關(guān)Python groupby用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python?groupby函數(shù)實(shí)現(xiàn)分組選取最大值與最小值
- Python?groupby函數(shù)圖文詳解
- python groupby函數(shù)實(shí)現(xiàn)分組后選取最值
- 詳解python中g(shù)roupby函數(shù)通俗易懂
- python groupby 函數(shù) as_index詳解
- Python DataFrame.groupby()聚合函數(shù),分組級運(yùn)算
- Python中的groupby分組功能的實(shí)例代碼
- Python在groupby分組后提取指定位置記錄方法
- Python正則表達(dá)式中g(shù)roup與groups的用法詳解
相關(guān)文章
用Python實(shí)現(xiàn)批量生成法務(wù)函代碼
大家好,本篇文章主要講的是用Python實(shí)現(xiàn)批量生成法務(wù)函代碼,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02
python實(shí)現(xiàn)差分隱私Laplace機(jī)制詳解
今天小編就為大家分享一篇python實(shí)現(xiàn)差分隱私Laplace機(jī)制詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python實(shí)現(xiàn)帶圖形界面的炸金花游戲
詐金花又叫三張牌,是在全國廣泛流傳的一種民間多人紙牌游戲,它具有獨(dú)特的比牌規(guī)則。本文將通過Python語言實(shí)現(xiàn)帶圖形界面的詐金花游戲,需要的可以參考一下2022-12-12
如何使用Flask-Migrate拓展數(shù)據(jù)庫表結(jié)構(gòu)
這篇文章主要介紹了如何使用Flask-Migrate拓展數(shù)據(jù)庫表結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07

