Pandas實(shí)現(xiàn)groupby分組統(tǒng)計(jì)方法實(shí)例
一、如何實(shí)現(xiàn)分組統(tǒng)計(jì)
groupby:先對(duì)數(shù)據(jù)分組,然后在每個(gè)分組上應(yīng)用聚合函數(shù)、轉(zhuǎn)換函數(shù)
通過(guò)三個(gè)實(shí)例來(lái)了解pandas是如何實(shí)現(xiàn)分組統(tǒng)計(jì)的
一、分組使用聚合函數(shù)做數(shù)據(jù)統(tǒng)計(jì)
二、遍歷groupby的結(jié)果理解執(zhí)行流程
三、實(shí)例分組探索天氣數(shù)據(jù)
導(dǎo)入數(shù)據(jù)
import pandas as pd
import numpy as np
# 加上這一句,能在jupyter notebook展示matplot圖表
#%matplotlib inline
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': np.random.randn(8),
'D': np.random.randn(8)})
df
二、分組使用聚合函數(shù)做數(shù)據(jù)統(tǒng)計(jì)
1、單個(gè)列g(shù)roupby,查詢所有數(shù)據(jù)列的統(tǒng)計(jì)
我們看到:
groupby中的'A'變成了數(shù)據(jù)的索引列
因?yàn)橐y(tǒng)計(jì)sum,但B列不是數(shù)字,所以被自動(dòng)忽略掉
df.groupby('A').sum()
2、多個(gè)列g(shù)roupby,查詢所有數(shù)據(jù)列的統(tǒng)計(jì)
我們看到:(‘A’,‘B’)成對(duì)變成了二級(jí)索引
df.groupby(['A','B']).mean()

3、同時(shí)查看多種數(shù)據(jù)統(tǒng)計(jì)
我們看到:列變成了多級(jí)索引
df.groupby('A').agg([np.sum, np.mean, np.std])
4、查看單列的結(jié)果數(shù)據(jù)統(tǒng)計(jì)
# 方法1:預(yù)過(guò)濾,性能更好
df.groupby('A')['C'].agg([np.sum, np.mean, np.std])
# 方法2
df.groupby('A').agg([np.sum, np.mean, np.std])['C']
5、不同列使用不同的聚合函數(shù)
df.groupby('A').agg({"C":np.sum, "D":np.mean})
三、遍歷groupby的結(jié)果理解執(zhí)行流程
for循環(huán)可以直接遍歷每個(gè)group
1、遍歷單個(gè)列聚合的分組
g = df.groupby('A')
for name,group in g:
print(name)
print(group)
print()
1.1、可以獲取單個(gè)分組的數(shù)據(jù)
g.get_group('bar')
2、遍歷多個(gè)列聚合的分組
g = df.groupby(['A', 'B'])
for name,group in g:
print(name)
print(group)
print()
#可以看到,name是一個(gè)2個(gè)元素的tuple,代表不同的列
g.get_group(('foo', 'one'))
四、實(shí)例分組探索天氣數(shù)據(jù)
fpath = "./datas/beijing_tianqi_2018.csv"
df = pd.read_csv(fpath)
# 替換掉溫度的后綴℃
df.loc[:, "bWendu"] = df["bWendu"].str.replace("℃", "").astype('int64')
df.loc[:, "yWendu"] = df["yWendu"].str.replace("℃", "").astype('int64')
df.head()
# 新增一列為月份 df['month'] = df['ymd'].str[:7] df.head()

1、查看每個(gè)月的最高溫度
data = df.groupby('month')['bWendu'].max()
data
type(data)
pandas.core.series.Series
2、查看每個(gè)月的最高溫度、最低溫度、平均空氣質(zhì)量指數(shù)
df.head()

group_data = df.groupby('month').agg({"bWendu":np.max, "yWendu":np.min, "aqi":np.mean})
group_data
總結(jié)
到此這篇關(guān)于Pandas實(shí)現(xiàn)groupby分組統(tǒng)計(jì)的文章就介紹到這了,更多相關(guān)Pandas實(shí)現(xiàn)groupby分組統(tǒng)計(jì)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實(shí)現(xiàn)語(yǔ)音合成小工具
TTS(Text To Speech)是一種語(yǔ)音合成技術(shù),可以讓機(jī)器將輸入文本以語(yǔ)音的方式播放出來(lái),實(shí)現(xiàn)機(jī)器說(shuō)話的效果。本文將使用pyttsx3庫(kù)作為示范,編寫一個(gè)語(yǔ)音合成小工具,感興趣的可以了解一下2022-12-12
關(guān)于Python 多重繼承時(shí)metaclass conflict問(wèn)題解決與原理探究
這篇文章主要介紹了Python 多重繼承時(shí)metaclass conflict問(wèn)題解決與原理探究 ,需要的朋友可以參考下2022-10-10
django自帶serializers序列化返回指定字段的方法
今天小編就為大家分享一篇django自帶serializers序列化返回指定字段的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
python-opencv 將連續(xù)圖片寫成視頻格式的方法
今天小編就為大家分享一篇python-opencv 將連續(xù)圖片寫成視頻格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Tkinter canvas的畫布參數(shù),刪除組件,添加垂直滾動(dòng)條詳解
這篇文章主要介紹了python tkinter 畫布參數(shù),刪除組件,添加垂直滾動(dòng)條使用實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2021-10-10
python做http代理請(qǐng)求的項(xiàng)目實(shí)踐
本文主要介紹了使用Python Flask實(shí)現(xiàn)HTTP代理服務(wù)器的解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03

