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í)分類(lèi)”對(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í)分類(lèi)','7天點(diǎn)擊量','訂單預(yù)定']]
df1=df1.groupby('一級(jí)分類(lèi)').sum() #分組統(tǒng)計(jì)求和
示例2:
按照?qǐng)D書(shū)“一級(jí)分類(lèi)”和“二級(jí)分類(lèi)”對(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í)分類(lèi)','二級(jí)分類(lèi)','7天點(diǎn)擊量','訂單預(yù)定']]
df2=df1.groupby(['一級(jí)分類(lèi)','二級(jí)分類(lèi)']).sum() #分組統(tǒng)計(jì)求和
示例3:
求各二級(jí)分類(lèi)的七天點(diǎn)擊量。首先按“二級(jí)分類(lèi)”分類(lèi),而后進(jìn)行分組統(tǒng)計(jì)求和。
df1 = df1.groupby('二級(jí)分類(lèi)')['七天點(diǎn)擊量'].sum()2.對(duì)分組數(shù)據(jù)進(jìn)行迭代
示例1:
按照“一級(jí)分類(lèi)”分組,并且輸出每一分類(lèi)中的訂單數(shù)據(jù)
# 抽取數(shù)據(jù)
df1 = df[['一級(jí)分類(lèi)',‘七天點(diǎn)擊量',‘訂單預(yù)定']]
for name, group in df.groupby('一級(jí)分類(lèi)')
print(name)
print(group)其中name是‘一級(jí)分類(lèi)’, 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í)分類(lèi)'分組,求分組后的平均值與和
2.以'一級(jí)分類(lèi)'分組,求分組后'七天點(diǎn)擊量'的平均值與和,求'訂單預(yù)定'的和
df1.groupby('一級(jí)分類(lèi)').agg(['mean','sum'])
df1.groupby('一級(jí)分類(lèi)').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ì)一月份銷(xiāo)售數(shù)據(jù)中,購(gòu)買(mǎi)次數(shù)最多的產(chǎn)品,及其人均購(gòu)買(mǎi)數(shù),人均花費(fèi),總購(gòu)買(mǎi)數(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'],
'賣(mài)家實(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(['商品名稱(chēng)'])
#創(chuàng)建字典
mapping={'北京出庫(kù)銷(xiāo)量':'北上廣','上海出庫(kù)銷(xiāo)量':'北上廣',
'廣州出庫(kù)銷(xiāo)量':'北上廣','成都出庫(kù)銷(xiāo)量':'成都',
'武漢出庫(kù)銷(xiāo)量':'武漢','西安出庫(kù)銷(xiāo)量':'西安'}
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ù)銷(xiāo)量',對(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(['商品名稱(chēng)'])
data={'北京出庫(kù)銷(xiāo)量':'北上廣','上海出庫(kù)銷(xiāo)量':'北上廣',
'廣州出庫(kù)銷(xiāo)量':'北上廣','成都出庫(kù)銷(xiāo)量':'成都',
'武漢出庫(kù)銷(xiāo)量':'武漢','西安出庫(kù)銷(xiāo)量':'西安',}
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輕松構(gòu)建一個(gè)Windows11系統(tǒng)智能垃圾清理系統(tǒng)
Windows 11雖然引入了存儲(chǔ)感知,但在面對(duì)深層開(kāi)發(fā)緩存、老舊更新殘留及特定應(yīng)用日志時(shí)往往力不從心,本文將詳解如何使用Python編寫(xiě)一套安全、智能、可配置的自動(dòng)化清理腳本,有需要的小伙伴可以了解下2026-01-01
Python實(shí)現(xiàn)批量Excel拆分功能
在日常辦公中,我們經(jīng)常需要將包含多個(gè)Sheet頁(yè)的Excel文件拆分成多個(gè)獨(dú)立的Excel文件,下面我們就來(lái)看看如何使用Python實(shí)現(xiàn)批量Excel拆分的功能吧2025-02-02
Python將字符串轉(zhuǎn)換為datetime對(duì)象的五種方法
在Python編程中,我們經(jīng)常會(huì)遇到需要將字符串形式的日期和時(shí)間轉(zhuǎn)換為datetime對(duì)象的情況,例如,從文件、數(shù)據(jù)庫(kù)或網(wǎng)絡(luò)接口中獲取的數(shù)據(jù)通常是以字符串形式存在的,使用datetime對(duì)象會(huì)更加方便,所以本文給大家總結(jié)Python將字符串轉(zhuǎn)換為datetime對(duì)象的五種方法2025-07-07
Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn)
本文主要介紹了Pandas.DataFrame刪除指定行和列(drop)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Pytest多環(huán)境切換的常見(jiàn)方法介紹
Pytest 作為自動(dòng)化測(cè)試的主力框架,如何實(shí)現(xiàn)本地、測(cè)試、預(yù)發(fā)、生產(chǎn)環(huán)境的靈活切換,本文總結(jié)了通過(guò)pytest框架實(shí)現(xiàn)自由環(huán)境切換的幾種方法,大家可以根據(jù)需要進(jìn)行選擇2025-04-04
Python實(shí)現(xiàn)網(wǎng)絡(luò)通信的HTTP請(qǐng)求Socket編程Web爬蟲(chóng)方法探索
隨著互聯(lián)網(wǎng)的不斷發(fā)展,Python作為一門(mén)多用途的編程語(yǔ)言,提供了強(qiáng)大的工具和庫(kù)來(lái)進(jìn)行網(wǎng)絡(luò)連接和通信,本文將深入探討Python中連接網(wǎng)絡(luò)的方法,包括HTTP請(qǐng)求、Socket編程、Web爬蟲(chóng)和REST?API的使用2024-01-01
教你在Excel中調(diào)用Python腳本實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化處理的方法
Excel是全世界最流行的編程語(yǔ)言,Excel已經(jīng)可以實(shí)現(xiàn)編程語(yǔ)言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣,今天通過(guò)本文給大家介紹下Python數(shù)據(jù)自動(dòng)化處理的相關(guān)知識(shí),感興趣的朋友一起看看吧2022-02-02
python計(jì)算兩個(gè)數(shù)的百分比方法
今天小編就為大家分享一篇python計(jì)算兩個(gè)數(shù)的百分比方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06

