Pandas實現(xiàn)groupby分組統(tǒng)計方法實例
一、如何實現(xiàn)分組統(tǒng)計
groupby:先對數(shù)據(jù)分組,然后在每個分組上應用聚合函數(shù)、轉(zhuǎn)換函數(shù)
通過三個實例來了解pandas是如何實現(xiàn)分組統(tǒng)計的
一、分組使用聚合函數(shù)做數(shù)據(jù)統(tǒng)計
二、遍歷groupby的結(jié)果理解執(zhí)行流程
三、實例分組探索天氣數(shù)據(jù)
導入數(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)計
1、單個列g(shù)roupby,查詢所有數(shù)據(jù)列的統(tǒng)計
我們看到:
groupby中的'A'變成了數(shù)據(jù)的索引列
因為要統(tǒng)計sum,但B列不是數(shù)字,所以被自動忽略掉
df.groupby('A').sum()
2、多個列g(shù)roupby,查詢所有數(shù)據(jù)列的統(tǒng)計
我們看到:(‘A’,‘B’)成對變成了二級索引
df.groupby(['A','B']).mean()
3、同時查看多種數(shù)據(jù)統(tǒng)計
我們看到:列變成了多級索引
df.groupby('A').agg([np.sum, np.mean, np.std])
4、查看單列的結(jié)果數(shù)據(jù)統(tǒng)計
# 方法1:預過濾,性能更好 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)可以直接遍歷每個group
1、遍歷單個列聚合的分組
g = df.groupby('A') for name,group in g: print(name) print(group) print()
1.1、可以獲取單個分組的數(shù)據(jù)
g.get_group('bar')
2、遍歷多個列聚合的分組
g = df.groupby(['A', 'B']) for name,group in g: print(name) print(group) print() #可以看到,name是一個2個元素的tuple,代表不同的列
g.get_group(('foo', 'one'))
四、實例分組探索天氣數(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、查看每個月的最高溫度
data = df.groupby('month')['bWendu'].max() data
type(data)
pandas.core.series.Series
2、查看每個月的最高溫度、最低溫度、平均空氣質(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實現(xiàn)groupby分組統(tǒng)計的文章就介紹到這了,更多相關(guān)Pandas實現(xiàn)groupby分組統(tǒng)計內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Python實現(xiàn)音樂節(jié)奏可視化效果
這篇文章主要為大家詳細介紹了如何基于Python語言實現(xiàn)音樂節(jié)奏可視化效果,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-06-06python實現(xiàn)七段數(shù)碼管和倒計時效果
今天小編就為大家分享一篇python實現(xiàn)七段數(shù)碼管和倒計時效果,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11pandas數(shù)據(jù)探索之合并數(shù)據(jù)示例詳解
這篇文章主要為大家介紹了pandas數(shù)據(jù)探索之合并數(shù)據(jù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10如何在Flask中實現(xiàn)數(shù)據(jù)分組流程詳解
在Flask中,數(shù)據(jù)分組是指將一組數(shù)據(jù)按照某種方式進行分類,以便更好地對數(shù)據(jù)進行處理和展示,可以使用Python內(nèi)置的itertools模塊中的groupby方法,或者使用SQL語句中的GROUP?BY子句來實現(xiàn)數(shù)據(jù)分組,這篇文章介紹了在Flask中實現(xiàn)數(shù)據(jù)分組,感興趣的同學可以參考下文2023-05-05python之PySide2安裝使用及QT Designer UI設(shè)計案例教程
這篇文章主要介紹了python之PySide2安裝使用及QT Designer UI設(shè)計案例教程,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-07-07pycharm解決關(guān)閉flask后依舊可以訪問服務的問題
這篇文章主要介紹了pycharm解決關(guān)閉flask后依舊可以訪問服務的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04探索Python int()函數(shù)傳入中文或者字符串會發(fā)生什么
這篇文章主要為大家介紹了Python int()函數(shù)傳入中文或者字符串會發(fā)生什么,詳細討論int()函數(shù)的常規(guī)使用以及它如何處理異常輸入,特別是涉及字符串和中文字符的情況2024-01-01