Python?Pandas聚合函數(shù)的應(yīng)用示例
Python Pandas聚合函數(shù)
在前一節(jié),我們重點(diǎn)介紹了窗口函數(shù)。我們知道,窗口函數(shù)可以與聚合函數(shù)一起使用,聚合函數(shù)指的是對(duì)一組數(shù)據(jù)求總和、最大值、最小值以及平均值的操作,本節(jié)重點(diǎn)講解聚合函數(shù)的應(yīng)用。
應(yīng)用聚合函數(shù)
首先讓我們創(chuàng)建一個(gè) DataFrame 對(duì)象,然后對(duì)聚合函數(shù)進(jìn)行應(yīng)用。
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D']) print (df) #窗口大小為3,min_periods 最小觀測值為1 r = df.rolling(window=3,min_periods=1) print(r)
輸出結(jié)果:
A B C D
2020-12-14 0.941621 1.205489 0.473771 -0.348169
2020-12-15 -0.276954 0.076387 0.104194 1.537357
2020-12-16 0.582515 0.481999 -0.652332 -1.893678
2020-12-17 -0.286432 0.923514 0.285255 -0.739378
2020-12-18 2.063422 -0.465873 -0.946809 1.590234Rolling [window=3,min_periods=1,center=False,axis=0]
1) 對(duì)整體聚合
您可以把一個(gè)聚合函數(shù)傳遞給 DataFrame,示例如下:
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D']) print (df) #窗口大小為3,min_periods 最小觀測值為1 r = df.rolling(window=3,min_periods=1) #使用 aggregate()聚合操作 print(r.aggregate(np.sum))
輸出結(jié)果:
A B C D
2020-12-14 0.133713 0.746781 0.499385 0.589799
2020-12-15 -0.777572 0.531269 0.600577 -0.393623
2020-12-16 0.408115 -0.874079 0.584320 0.507580
2020-12-17 -1.033055 -1.185399 -0.546567 2.094643
2020-12-18 0.469394 -1.110549 -0.856245 0.260827A B C D
2020-12-14 0.133713 0.746781 0.499385 0.589799
2020-12-15 -0.643859 1.278050 1.099962 0.196176
2020-12-16 -0.235744 0.403971 1.684281 0.703756
2020-12-17 -1.402513 -1.528209 0.638330 2.208601
2020-12-18 -0.155546 -3.170027 -0.818492 2.863051
2) 對(duì)任意某一列聚合
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D']) #窗口大小為3,min_periods 最小觀測值為1 r = df.rolling(window=3,min_periods=1) #對(duì) A 列聚合 print(r['A'].aggregate(np.sum))
輸出結(jié)果:
2020-12-14 1.051501
2020-12-15 1.354574
2020-12-16 0.896335
2020-12-17 0.508470
2020-12-18 2.333732
Freq: D, Name: A, dtype: float64
3) 對(duì)多列數(shù)據(jù)聚合
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D']) #窗口大小為3,min_periods 最小觀測值為1 r = df.rolling(window=3,min_periods=1) #對(duì) A/B 兩列聚合 print(r['A','B'].aggregate(np.sum))
輸出結(jié)果:
A B
2020-12-14 0.639867 -0.229990
2020-12-15 0.352028 0.257918
2020-12-16 0.637845 2.643628
2020-12-17 0.432715 2.428604
2020-12-18 -1.575766 0.969600
4) 對(duì)單列應(yīng)用多個(gè)函數(shù)
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 4),index = pd.date_range('12/14/2020', periods=5),columns = ['A', 'B', 'C', 'D']) #窗口大小為3,min_periods 最小觀測值為1 r = df.rolling(window=3,min_periods=1) #對(duì) A/B 兩列聚合 print(r['A','B'].aggregate([np.sum,np.mean]))
輸出結(jié)果:
sum mean
2020-12-14 -0.469643 -0.469643
2020-12-15 -0.626856 -0.313428
2020-12-16 -1.820226 -0.606742
2020-12-17 -2.007323 -0.669108
2020-12-18 -0.595736 -0.198579
5) 對(duì)不同列應(yīng)用多個(gè)函數(shù)
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(5, 4), index = pd.date_range('12/11/2020', periods=5), columns = ['A', 'B', 'C', 'D']) r = df.rolling(window=3,min_periods=1) print( r['A','B'].aggregate([np.sum,np.mean]))
輸出結(jié)果:
A B
sum mean sum mean
2020-12-14 -1.428882 -1.428882 -0.417241 -0.417241
2020-12-15 -1.315151 -0.657576 -1.580616 -0.790308
2020-12-16 -2.093907 -0.697969 -2.260181 -0.753394
2020-12-17 -1.324490 -0.441497 -1.578467 -0.526156
2020-12-18 -2.400948 -0.800316 -0.452740 -0.150913
6) 對(duì)不同列應(yīng)用不同函數(shù)
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(3, 4), index = pd.date_range('12/14/2020', periods=3), columns = ['A', 'B', 'C', 'D']) r = df.rolling(window=3,min_periods=1) print(r.aggregate({'A': np.sum,'B': np.mean}))
輸出結(jié)果:
A B
2020-12-14 0.503535 -1.301423
2020-12-15 0.170056 -0.550289
2020-12-16 -0.086081 -0.140532
總結(jié)
到此這篇關(guān)于Python Pandas聚合函數(shù)的文章就介紹到這了,更多相關(guān)Python Pandas聚合函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Python網(wǎng)絡(luò)爬蟲功能的基本寫法
這篇文章主要介紹了Python網(wǎng)絡(luò)爬蟲功能的基本寫法,網(wǎng)絡(luò)爬蟲,即Web Spider,是一個(gè)很形象的名字。把互聯(lián)網(wǎng)比喻成一個(gè)蜘蛛網(wǎng),那么Spider就是在網(wǎng)上爬來爬去的蜘蛛,對(duì)網(wǎng)絡(luò)爬蟲感興趣的朋友可以參考本文2016-01-01Python3使用requests登錄人人影視網(wǎng)站的方法
通過本文給大家介紹python代碼實(shí)現(xiàn)使用requests登錄網(wǎng)站的過程。非常具有參考價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-05-05pycharm 設(shè)置項(xiàng)目的根目錄教程
今天小編就為大家分享一篇pycharm 設(shè)置項(xiàng)目的根目錄教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02python pandas.DataFrame選取、修改數(shù)據(jù)最好用.loc,.iloc,.ix實(shí)現(xiàn)
今天小編就為大家分享一篇python pandas.DataFrame選取、修改數(shù)據(jù)最好用.loc,.iloc,.ix實(shí)現(xiàn)。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06利用python3篩選excel中特定的行(行值滿足某個(gè)條件/行值屬于某個(gè)集合)
這篇文章主要給大家介紹了關(guān)于利用python3篩選excel中特定的行(行值滿足某個(gè)條件/行值屬于某個(gè)集合)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python3實(shí)現(xiàn)單目標(biāo)粒子群算法
這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)單目標(biāo)粒子群算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11Python基于pandas繪制散點(diǎn)圖矩陣代碼實(shí)例
這篇文章主要介紹了Python基于pandas繪制散點(diǎn)圖矩陣代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06Python利用WMI實(shí)現(xiàn)ping命令的例子
今天小編就為大家分享一篇Python利用WMI實(shí)現(xiàn)ping命令的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08