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 #導(dǎo)入pandas模塊
df=pd.read_csv('JD.csv',encoding='gbk')
#抽取數(shù)據(jù)
df1=df[['一級分類','7天點擊量','訂單預(yù)定']]
df1=df1.groupby('一級分類').sum() #分組統(tǒng)計求和
示例2:
按照圖書“一級分類”和“二級分類”對訂單數(shù)據(jù)進行分組統(tǒng)計求和
import pandas as pd #導(dǎo)入pandas模塊
df=pd.read_csv('JD.csv',encoding='gbk')
#抽取數(shù)據(jù)
df1=df[['一級分類','二級分類','7天點擊量','訂單預(yù)定']]
df2=df1.groupby(['一級分類','二級分類']).sum() #分組統(tǒng)計求和
示例3:
求各二級分類的七天點擊量。首先按“二級分類”分類,而后進行分組統(tǒng)計求和。
df1 = df1.groupby('二級分類')['七天點擊量'].sum()2.對分組數(shù)據(jù)進行迭代
示例1:
按照“一級分類”分組,并且輸出每一分類中的訂單數(shù)據(jù)
# 抽取數(shù)據(jù)
df1 = df[['一級分類',‘七天點擊量',‘訂單預(yù)定']]
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.以'一級分類'分組,求分組后'七天點擊量'的平均值與和,求'訂單預(yù)定'的和
df1.groupby('一級分類').agg(['mean','sum'])
df1.groupby('一級分類').agg({'七天點擊量':['mean','sum'],'訂單預(yù)定':['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 #導(dǎo)入pandas模塊
#解決數(shù)據(jù)輸出時列名不對齊的問題
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={'北京出庫銷量':'北上廣','上海出庫銷量':'北上廣',
'廣州出庫銷量':'北上廣','成都出庫銷量':'成都',
'武漢出庫銷量':'武漢','西安出庫銷量':'西安'}
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 #導(dǎo)入pandas模塊
#解決數(shù)據(jù)輸出時列名不對齊的問題
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={'北京出庫銷量':'北上廣','上海出庫銷量':'北上廣',
'廣州出庫銷量':'北上廣','成都出庫銷量':'成都',
'武漢出庫銷量':'武漢','西安出庫銷量':'西安',}
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輕松構(gòu)建一個Windows11系統(tǒng)智能垃圾清理系統(tǒng)
Windows 11雖然引入了存儲感知,但在面對深層開發(fā)緩存、老舊更新殘留及特定應(yīng)用日志時往往力不從心,本文將詳解如何使用Python編寫一套安全、智能、可配置的自動化清理腳本,有需要的小伙伴可以了解下2026-01-01
Python將字符串轉(zhuǎn)換為datetime對象的五種方法
在Python編程中,我們經(jīng)常會遇到需要將字符串形式的日期和時間轉(zhuǎn)換為datetime對象的情況,例如,從文件、數(shù)據(jù)庫或網(wǎng)絡(luò)接口中獲取的數(shù)據(jù)通常是以字符串形式存在的,使用datetime對象會更加方便,所以本文給大家總結(jié)Python將字符串轉(zhuǎn)換為datetime對象的五種方法2025-07-07
Pandas.DataFrame刪除指定行和列(drop)的實現(xiàn)
本文主要介紹了Pandas.DataFrame刪除指定行和列(drop)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-02-02
Python實現(xiàn)網(wǎng)絡(luò)通信的HTTP請求Socket編程Web爬蟲方法探索
隨著互聯(lián)網(wǎng)的不斷發(fā)展,Python作為一門多用途的編程語言,提供了強大的工具和庫來進行網(wǎng)絡(luò)連接和通信,本文將深入探討Python中連接網(wǎng)絡(luò)的方法,包括HTTP請求、Socket編程、Web爬蟲和REST?API的使用2024-01-01
教你在Excel中調(diào)用Python腳本實現(xiàn)數(shù)據(jù)自動化處理的方法
Excel是全世界最流行的編程語言,Excel已經(jīng)可以實現(xiàn)編程語言的算法,因此它是具備圖靈完備性的,和JavaScript、Java、Python一樣,今天通過本文給大家介紹下Python數(shù)據(jù)自動化處理的相關(guān)知識,感興趣的朋友一起看看吧2022-02-02

