Pandas數(shù)據(jù)分組統(tǒng)計(jì)的實(shí)現(xiàn)示例
1.分組統(tǒng)計(jì)groupby()函數(shù)
對(duì)數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì),主要適用DataFrame對(duì)象的groupby()函數(shù)。其功能如下。
(1)根據(jù)特定條件,將數(shù)據(jù)拆分成組
(2)每個(gè)組都可以獨(dú)立應(yīng)用函數(shù)(如求和函數(shù)sum(),均值函數(shù)mean()等)
(3)將結(jié)果合并到一個(gè)數(shù)據(jù)結(jié)構(gòu)中
示例1:
根據(jù)“一級(jí)分類”對(duì)訂單數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì)求和。

import pandas as pd #導(dǎo)入pandas模塊
df=pd.read_csv('JD.csv',encoding='gbk')
#抽取數(shù)據(jù)
df1=df[['一級(jí)分類','7天點(diǎn)擊量','訂單預(yù)定']]
df1=df1.groupby('一級(jí)分類').sum() #分組統(tǒng)計(jì)求和
示例2:
按照?qǐng)D書(shū)“一級(jí)分類”和“二級(jí)分類”對(duì)訂單數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì)求和
import pandas as pd #導(dǎo)入pandas模塊
df=pd.read_csv('JD.csv',encoding='gbk')
#抽取數(shù)據(jù)
df1=df[['一級(jí)分類','二級(jí)分類','7天點(diǎn)擊量','訂單預(yù)定']]
df2=df1.groupby(['一級(jí)分類','二級(jí)分類']).sum() #分組統(tǒng)計(jì)求和
示例3:
求各二級(jí)分類的七天點(diǎn)擊量。首先按“二級(jí)分類”分類,而后進(jìn)行分組統(tǒng)計(jì)求和。
df1 = df1.groupby('二級(jí)分類')['七天點(diǎn)擊量'].sum()2.對(duì)分組數(shù)據(jù)進(jìn)行迭代
示例1:
按照“一級(jí)分類”分組,并且輸出每一分類中的訂單數(shù)據(jù)
# 抽取數(shù)據(jù)
df1 = df[['一級(jí)分類',‘七天點(diǎn)擊量',‘訂單預(yù)定']]
for name, group in df.groupby('一級(jí)分類')
print(name)
print(group)其中name是‘一級(jí)分類’, group是其他數(shù)據(jù)。因此使用groupby()函數(shù)對(duì)多列進(jìn)行分組,那么需要在for循環(huán)中指定多列。
3.對(duì)分組的某列或多列使用聚合函數(shù)
Python也可以實(shí)現(xiàn)像SQL中的分組聚合運(yùn)算操作,主要通過(guò)groupby()函數(shù)與agg()函數(shù)實(shí)現(xiàn)。
以下代碼實(shí)現(xiàn):
1. 以'一級(jí)分類'分組,求分組后的平均值與和
2.以'一級(jí)分類'分組,求分組后'七天點(diǎn)擊量'的平均值與和,求'訂單預(yù)定'的和
df1.groupby('一級(jí)分類').agg(['mean','sum'])
df1.groupby('一級(jí)分類').agg({'七天點(diǎn)擊量':['mean','sum'],'訂單預(yù)定':['sum']})我們可以通過(guò)自定義函數(shù)實(shí)現(xiàn)數(shù)組分組統(tǒng)計(jì)。書(shū)本p110
以下代碼實(shí)現(xiàn):
1.統(tǒng)計(jì)一月份銷售數(shù)據(jù)中,購(gòu)買次數(shù)最多的產(chǎn)品,及其人均購(gòu)買數(shù),人均花費(fèi),總購(gòu)買數(shù),總花費(fèi)。
df = pd.read_excel('1月.xlsx')
max1 = lambda x: x.value_counts(dropna=false).index[0]
df1 = df.agg({'寶貝標(biāo)題':[max1],
'數(shù)量':['sum','mean'],
'賣家實(shí)際支付金額':['sum','mean']})
print(df1)4.通過(guò)字典和Series對(duì)象進(jìn)行分組統(tǒng)計(jì)
1.通過(guò)字典進(jìn)行分組統(tǒng)計(jì)
創(chuàng)建字典,df.groupby()函數(shù)通過(guò)字典內(nèi)信息分組。
import pandas as pd #導(dǎo)入pandas模塊
#解決數(shù)據(jù)輸出時(shí)列名不對(duì)齊的問(wèn)題
pd.set_option('display.unicode.east_asian_width', True)
df=pd.read_csv('JD.csv',encoding='gbk') #導(dǎo)入csv文件
df=df.set_index(['商品名稱'])
#創(chuàng)建字典
mapping={'北京出庫(kù)銷量':'北上廣','上海出庫(kù)銷量':'北上廣',
'廣州出庫(kù)銷量':'北上廣','成都出庫(kù)銷量':'成都',
'武漢出庫(kù)銷量':'武漢','西安出庫(kù)銷量':'西安'}
df1=df.groupby(mapping,axis=1).sum()
print(df1)
2.通過(guò)Series對(duì)象進(jìn)行分組統(tǒng)計(jì)
創(chuàng)建一個(gè)Series對(duì)象,然后將Series對(duì)象傳給groupby()函數(shù)實(shí)現(xiàn)數(shù)據(jù)分組。Series對(duì)象內(nèi)放索引+值:如'北京出庫(kù)銷量',對(duì)應(yīng)值'北上廣'。
import pandas as pd #導(dǎo)入pandas模塊
#解決數(shù)據(jù)輸出時(shí)列名不對(duì)齊的問(wèn)題
pd.set_option('display.unicode.east_asian_width', True)
df=pd.read_csv('JD.csv',encoding='gbk') #導(dǎo)入csv文件
df=df.set_index(['商品名稱'])
data={'北京出庫(kù)銷量':'北上廣','上海出庫(kù)銷量':'北上廣',
'廣州出庫(kù)銷量':'北上廣','成都出庫(kù)銷量':'成都',
'武漢出庫(kù)銷量':'武漢','西安出庫(kù)銷量':'西安',}
s1=pd.Series(data)
print(s1)
df1=df.groupby(s1,axis=1).sum()
print(df1)到此這篇關(guān)于Pandas數(shù)據(jù)分組統(tǒng)計(jì)的實(shí)現(xiàn)示例的文章就介紹到這了,更多相關(guān)Pandas 分組統(tǒng)計(jì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python中使用異常處理來(lái)判斷運(yùn)行的操作系統(tǒng)平臺(tái)方法
這篇文章主要介紹了Python中使用異常處理來(lái)判斷運(yùn)行的操作系統(tǒng)平臺(tái)方法,這個(gè)方法比較新穎,,需要的朋友可以參考下2015-01-01
pampy超強(qiáng)的模式匹配工具的實(shí)現(xiàn)
在自然語(yǔ)言處理界,模式匹配可以說(shuō)是最常用的技術(shù)。甚至可以說(shuō),將NLP技術(shù)作為真實(shí)生產(chǎn)力的項(xiàng)目都少不了模式匹配。本文就介紹了pampy超強(qiáng)的模式匹配工具的實(shí)現(xiàn),感興趣的可以了解一下2021-07-07
Python 通過(guò)監(jiān)聽(tīng)端口實(shí)現(xiàn)唯一腳本運(yùn)行方式
這篇文章主要介紹了Python 通過(guò)監(jiān)聽(tīng)端口實(shí)現(xiàn)唯一腳本運(yùn)行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
python爬蟲(chóng)之利用selenium模塊自動(dòng)登錄CSDN
這篇文章主要介紹了python爬蟲(chóng)之利用selenium模塊自動(dòng)登錄CSDN,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下2021-04-04
Python中的time模塊與datetime模塊用法總結(jié)
Python中內(nèi)置的各項(xiàng)時(shí)間日期函數(shù)幾乎都來(lái)自于time和datetime這兩個(gè)模塊,下面整理了Python中的time模塊與datetime模塊用法總結(jié),需要的朋友可以參考下2016-06-06
sublime python3 輸入換行不結(jié)束的方法
下面小編就為大家分享一篇sublime python3 輸入換行不結(jié)束的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
pycharm中虛擬環(huán)境venv簡(jiǎn)介以及實(shí)踐指南
這篇文章主要給大家介紹了關(guān)于pycharm中虛擬環(huán)境venv簡(jiǎn)介以及實(shí)踐的相關(guān)資料,虛擬環(huán)境是利用了操作系統(tǒng)中環(huán)境變量,以及進(jìn)程間環(huán)境隔離的特性,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-10-10

