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