DataFrame窗口函數(shù)rolling()的用法
DataFrame窗口函數(shù)rolling()
在數(shù)據(jù)開發(fā)最經(jīng)常會(huì)用到將最近幾個(gè)值相加、求平均等操作,類似SQL的group by
在Dataframe中使用rolling操作簡(jiǎn)單、計(jì)算效率高
DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
參數(shù)說明
window
:時(shí)間窗的大小,數(shù)值int,即向前幾個(gè)數(shù)據(jù)(可以理解將最近的幾個(gè)值進(jìn)行g(shù)roup by)min_periods
:最少需要有值的觀測(cè)點(diǎn)的數(shù)量,對(duì)于int類型,默認(rèn)與window相等center
:把窗口的標(biāo)簽設(shè)置為居中,布爾型,默認(rèn)Falsewin_type
: 窗口的類型,截取窗的各種函數(shù)。字符串類型,默認(rèn)為Noneon
: 可選參數(shù),對(duì)于dataframe而言,指定要計(jì)算滾動(dòng)窗口的列,值為列名closed
:定義區(qū)間的開閉,支持int類型的window,對(duì)于offset類型默認(rèn)是左開右閉的即默認(rèn)為right,可以根據(jù)情況指定為left、both等axis
:方向(軸),一般都是0
示例代碼
# -*- coding:utf-8 -*- import pandas as pd import numpy as np # 創(chuàng)建DF df = pd.DataFrame(np.random.randint(5, size=(10, 2)), index=pd.date_range('1/1/2020', periods=10), columns=['A', 'B']) # 將B列最近2個(gè)值相加并生成新列 df['C'] = df['B'].rolling(window=2).sum() # 將B列最近5個(gè)值相加并生成新列 df['D'] = df['B'].rolling(window=5).sum() # 將B列最近2個(gè)值求平均并生成新列 df['E'] = df['B'].rolling(window=2).mean() # 將B列最近5個(gè)值求平均并生成新列 df['F'] = df['B'].rolling(window=5).mean() print(df)
輸出結(jié)果:
A B C D E F
2020-01-01 4 0 NaN NaN NaN NaN
2020-01-02 4 1 1.0 NaN 0.5 NaN
2020-01-03 1 4 5.0 NaN 2.5 NaN
2020-01-04 2 2 6.0 NaN 3.0 NaN
2020-01-05 0 1 3.0 8.0 1.5 1.6
2020-01-06 2 1 2.0 9.0 1.0 1.8
2020-01-07 4 1 2.0 9.0 1.0 1.8
2020-01-08 3 0 1.0 5.0 0.5 1.0
2020-01-09 3 4 4.0 7.0 2.0 1.4
2020-01-10 3 3 7.0 9.0 3.5 1.8
常用聚合函數(shù)
mean()
求平均count()
非空觀測(cè)值數(shù)量sum()
值的總和median()
值的算術(shù)中值min()
最小值max()
最大std()
貝塞爾修正樣本標(biāo)準(zhǔn)差var()
無偏方差skew()
樣品偏斜度(三階矩)kurt()
樣品峰度(四階矩)quantile()
樣本分位數(shù)(百分位上的值)cov()
無偏協(xié)方差(二元)corr()
相關(guān)(二進(jìn)制)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
django 自定義filter 判斷if var in list的例子
今天小編就為大家分享一篇django 自定義filter 判斷if var in list的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08一篇文章帶你了解python標(biāo)準(zhǔn)庫--datetime模塊
這篇文章主要為大家介紹了python中的datetime模塊,datetime模塊的接口則更直觀、更容易調(diào)用,想要了解datetime模塊的朋友可以參考一下2021-08-08Python 判斷 有向圖 是否有環(huán)的實(shí)例講解
下面小編就為大家分享一篇Python 判斷 有向圖 是否有環(huán)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02python 計(jì)算積分圖和haar特征的實(shí)例代碼
今天小編就為大家分享一篇python 計(jì)算積分圖和haar特征的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11pandas.loc 選取指定列進(jìn)行操作的實(shí)例
今天小編就為大家分享一篇pandas.loc 選取指定列進(jìn)行操作的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05