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ù)說(shuō)明
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()無(wú)偏方差skew()樣品偏斜度(三階矩)kurt()樣品峰度(四階矩)quantile()樣本分位數(shù)(百分位上的值)cov()無(wú)偏協(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ì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
一篇文章帶你了解python標(biāo)準(zhǔn)庫(kù)--datetime模塊
這篇文章主要為大家介紹了python中的datetime模塊,datetime模塊的接口則更直觀、更容易調(diào)用,想要了解datetime模塊的朋友可以參考一下2021-08-08
Python 判斷 有向圖 是否有環(huán)的實(shí)例講解
下面小編就為大家分享一篇Python 判斷 有向圖 是否有環(huán)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
python 計(jì)算積分圖和haar特征的實(shí)例代碼
今天小編就為大家分享一篇python 計(jì)算積分圖和haar特征的實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
python使用布隆過(guò)濾器的實(shí)現(xiàn)示例
這篇文章主要介紹了python使用布隆過(guò)濾器的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
pandas.loc 選取指定列進(jìn)行操作的實(shí)例
今天小編就為大家分享一篇pandas.loc 選取指定列進(jìn)行操作的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05

