16-Python Pandas聚合函數

Python Pandas聚合函數

窗口函數可以與聚合函數一起使用,聚合函數指的是對一組數據求總和、最大值、最小值以及平均值的操作。

應用聚合函數

首先讓我們創建一個 DataFrame 對象,然后對聚合函數進行應用。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(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)

輸出結果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19
Rolling [window=3,min_periods=1,center=False,axis=0,method=single]
1) 對整體聚合

您可以把一個聚合函數傳遞給 DataFrame,示例如下:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(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.aggregate(np.sum))
# 以下方式也可以
# print(r.sum())

輸出結果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19A     B     C     D
2020-12-14   0.0   1.0   2.0   3.0
2020-12-15   4.0   6.0   8.0  10.0
2020-12-16  12.0  15.0  18.0  21.0
2020-12-17  24.0  27.0  30.0  33.0
2020-12-18  36.0  39.0  42.0  45.0
2) 對任意某一列聚合
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(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['B'].aggregate(np.sum))

輸出結果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19
2020-12-14     1.0
2020-12-15     6.0
2020-12-16    15.0
2020-12-17    27.0
2020-12-18    39.0
Freq: D, Name: B, dtype: float64
3) 對多列數據聚合
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(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['B','C'].aggregate(np.sum))

輸出結果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19B     C
2020-12-14   1.0   2.0
2020-12-15   6.0   8.0
2020-12-16  15.0  18.0
2020-12-17  27.0  30.0
2020-12-18  39.0  42.0
4) 對單列應用多個函數
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(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['B'].aggregate([np.sum,np.mean]))

輸出結果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19sum  mean
2020-12-14   1.0   1.0
2020-12-15   6.0   3.0
2020-12-16  15.0   5.0
2020-12-17  27.0   9.0
2020-12-18  39.0  13.0
5) 對不同列應用多個函數
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(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['B','C'].aggregate([np.sum,np.mean]))

輸出結果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19B           C      sum  mean   sum  mean
2020-12-14   1.0   1.0   2.0   2.0
2020-12-15   6.0   3.0   8.0   4.0
2020-12-16  15.0   5.0  18.0   6.0
2020-12-17  27.0   9.0  30.0  10.0
2020-12-18  39.0  13.0  42.0  14.0
6) 對不同列應用不同函數
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(20).reshape(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.aggregate({"B":np.sum,"C":np.mean}))

輸出結果:

             A   B   C   D
2020-12-14   0   1   2   3
2020-12-15   4   5   6   7
2020-12-16   8   9  10  11
2020-12-17  12  13  14  15
2020-12-18  16  17  18  19B     C
2020-12-14   1.0   2.0
2020-12-15   6.0   4.0
2020-12-16  15.0   6.0
2020-12-17  27.0  10.0
2020-12-18  39.0  14.0

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38471.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38471.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38471.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL中的子查詢和CTE(with ....as..)

第一次看到with as 這種類似于python中讀文件的寫法還是挺疑惑的,其實它是CTE,功能和子查詢很類似但又有不同點,在實際應用場景中具有著獨特作用。 子查詢 子查詢是在主查詢中的嵌套查詢,可以出現在SELECT、FROM、WHERE等子句中…

ai除安卓手機版APP軟件一鍵操作自動渲染去擦消稀缺資源下載

安卓手機版:點擊下載 蘋果手機版:點擊下載 電腦版(支持Mac和Windows):點擊下載 一款全新的AI除安卓手機版APP,一鍵操作,輕松實現自動渲染和去擦消效果,稀缺資源下載 1、一鍵操作&…

數學建模(1):期末大亂燉

1 概述!! 1.1 原型和模型 原型:客觀存在的研究對象稱為原型,也稱為“系統”、“過程”。 機械系統、電力系統、化學反應過程、生產銷售過程等都是原型; 研究原型的結構和原理, 從而進行優化、預測、評價…

Perl編程藝術:深入探索Tie機制的魔力

🌟 Perl編程藝術:深入探索Tie機制的魔力 在Perl的世界里,tie功能是一種極其強大的特性,它允許程序員將變量綁定到一個對象上,從而改變這個變量的默認行為。這種機制為變量提供了一種代理訪問方式,使得變量…

Jedis、Lettuce、RedisTemplate連接中間件

jedis就像jdbc一樣&#xff0c;用于兩個端直接的連接。 1.創建Spring項目 這里不過多贅述... 2.導入連接工具jedis 在pom文件中導入jedis的依賴。 <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version&…

結合數據索引結構看SQL的真實執行過程

引言 關于數據庫設計與優化的前幾篇文章中&#xff0c;我們提到了數據庫設計優化應該遵守的指導原則、數據庫底層的索引組織結構、數據庫的核心功能組件以及SQL的解析、編譯等。這些其實都是在為SQL的優化、執行的理解打基礎。 今天這篇文章&#xff0c;我們以MySQL中InnoDB存…

vim卡死

有些時候使用vim的時候莫名其妙的會卡死&#xff0c;導致輸入不了內容。查了一下資料發現&#xff0c;其實并不是vim卡死&#xff0c;而是在使用vim的工程中帶入了許多Windows上的使用習慣&#xff0c;比如“Ctrl-s”保存等&#xff0c;這可能會與Linux平臺的有些快捷鍵沖突。c…

Oracle PL / SQL 表 table

關系數據庫允許您在數據庫管理系統&#xff08;DBMS&#xff09;中存儲多個表。 您可以使用計算機上的查詢語言來操作表中的數據。 當前的查詢語言是結構化查詢語言&#xff08;SQL&#xff09;。 SQL是一組無關的命令&#xff0c;用于操作關系數據庫管理系統&#xff08;RD…

CleanMyMacX2024免費且強大的mac電腦系統優化工具

如果你的Mac電腦出現了存儲空間不足、運行緩慢、電池電量消耗過快等問題&#xff0c;那么CleanMyMacX這款軟件或許能為你提供解決方案。作為一款強大的系統優化工具&#xff0c;它能夠幫助用戶清理垃圾文件、優化內存和電池使用&#xff0c;從而提升Mac的性能表現&#xff0c;讓…

后端之路第三站(Mybatis)——XML文件操作sql

一、XML映射文件是啥 前面我們學過了在Mapper接口用注解的方式來操作sql語句 那么XML映射文件就另一種操作sql語句的方法 為什么還要有這么個玩意&#xff1f; 我簡單說就是&#xff1a;如果有的sql特別復雜的話&#xff0c;比如需要【動態sql】的話&#xff0c;就得用到XM…

【Android面試八股文】Fragment的add和replace的區別,分別對Fragment的生命周期有什么影響?

文章目錄 一、Fragment的add和replace的區別 ,分別對Fragment的生命周期有什么影響?1.1 `add` 方法1.2 `replace` 方法1.3 應用場景1.4 Fragment事務操作提交流程1.5 replace操作的本質是不是就是remove操作和add操作的組合?1.6 示例代碼:將一個已經存在的 `FragmentA` 替換…

電腦開機之后,鍵盤鼠標需要重新插拔才能正常使用?

前言 小白平時修電腦修得多&#xff0c;總是會遇到各種各樣的奇葩問題。這不&#xff0c;又有一位小伙伴來咨詢&#xff1a;電腦開機之后&#xff0c;鍵盤鼠標都不能用&#xff0c;需要重新插拔一下才能正常使用。 嘖嘖嘖&#xff0c;真的是很奇怪的問題&#xff0c;基本上沒見…

分頁緩存與下拉刷新的整合原理 - DoraPageDatabaseCacheRepository

何為分頁緩存&#xff1f; 顧名思義&#xff0c;分頁緩存就是邊分頁邊緩存&#xff0c;分頁通常使用下拉刷新控件實現&#xff0c;而緩存通常說的是指磁盤緩存&#xff0c;即保存到數據庫中&#xff0c;數據庫本身也是一個索引文件。 為什么緩存還要分頁&#xff1f; 在很大…

SSH 無密登錄配置流程

一、免密登錄原理 非對稱加密&#xff1a; 由于對稱加密的存在弊端&#xff0c;就產生了非對稱加密&#xff0c;非對稱加密中有兩個密鑰&#xff1a;公鑰和私鑰。公鑰由私鑰產生&#xff0c;但卻無法推算出私鑰&#xff1b;公鑰加密后的密文&#xff0c;只能通過對應的私鑰來解…

光速入門 Tailwind CSS

文章目錄 入門安裝IDE 設置使用預編譯器生產環境優化 基礎概念分層指令tailwindlayerapplyconfig 函數theme()screen() 基礎案例怎么設置屬性任意值&#xff1f;hover 父元素時&#xff0c;怎么選中子元素添加樣式&#xff1f;添加 animation 動畫 配置主題 Tailwind CSS 中文網…

.so: file not recognized: file format not recognized

項目場景&#xff1a; 自Linux 4.8起&#xff0c;傳統的GPIO sysfs接口被棄用。libgpiod操作gpio的方式感覺更加方便。 但是單板上好像沒裝這個工具&#xff0c;又到了熟悉的交叉編譯環節&#xff08;痛苦&#xff09;。 問題描述 按照流程裝完libgpiod&#xff0c;自信地去交…

安卓Gradle學習與應用:從入門到實踐

引言 在Android開發的世界里&#xff0c;Gradle不僅僅是一個構建工具&#xff0c;它更是一種強大的自動化系統&#xff0c;能夠幫助開發者高效地管理項目依賴、編譯、測試、打包以及部署。本篇博客旨在深入探討Gradle在Android開發中的應用&#xff0c;從基礎概念到實戰技巧&a…

334. 遞增的三元子序列

334. 遞增的三元子序列 題目鏈接&#xff1a;334. 遞增的三元子序列 代碼如下&#xff1a; class Solution { public://貪心bool increasingTriplet(vector<int>& nums) {if(nums.size()<3) {return false;}int firstnums[0],secondINT_MAX;for(int i1;i<…

Go源碼--context包

簡介 Context 是go語言比較重要的且也是比較復雜的一個結構體&#xff0c;Context主要有兩種功能: 取消信號&#xff1a;包括直接取消&#xff08;涉及的結構體&#xff1a;cancelCtx ; 涉及函數&#xff1a;WithCancel&#xff09;和攜帶截止日期的取消&#xff08;涉及結構…

密室逃脫——收集版

一、原版修改 1、導入資源 Unity Learn | 3D Beginner: Complete Project | URP 2、設置Scene 刪除SampleScene&#xff0c;打開UnityTechnologies-3DBeginnerComplete下的MainScene 3、降低音量 (1) 打開Hierarchy面板上的Audio降低音量 (2) 打開Prefabs文件夾&#xf…