DataFrame窗口函數(shù)rolling()的用法
DataFrame窗口函數(shù)rolling()
在數(shù)據(jù)開發(fā)最經(jīng)常會用到將最近幾個值相加、求平均等操作,類似SQL的group by
在Dataframe中使用rolling操作簡單、計算效率高
DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
參數(shù)說明
window:時間窗的大小,數(shù)值int,即向前幾個數(shù)據(jù)(可以理解將最近的幾個值進行g(shù)roup by)min_periods:最少需要有值的觀測點的數(shù)量,對于int類型,默認(rèn)與window相等center:把窗口的標(biāo)簽設(shè)置為居中,布爾型,默認(rèn)Falsewin_type: 窗口的類型,截取窗的各種函數(shù)。字符串類型,默認(rèn)為Noneon: 可選參數(shù),對于dataframe而言,指定要計算滾動窗口的列,值為列名closed:定義區(qū)間的開閉,支持int類型的window,對于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個值相加并生成新列
df['C'] = df['B'].rolling(window=2).sum()
# 將B列最近5個值相加并生成新列
df['D'] = df['B'].rolling(window=5).sum()
# 將B列最近2個值求平均并生成新列
df['E'] = df['B'].rolling(window=2).mean()
# 將B列最近5個值求平均并生成新列
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()非空觀測值數(shù)量sum()值的總和median()值的算術(shù)中值min()最小值max()最大std()貝塞爾修正樣本標(biāo)準(zhǔn)差var()無偏方差skew()樣品偏斜度(三階矩)kurt()樣品峰度(四階矩)quantile()樣本分位數(shù)(百分位上的值)cov()無偏協(xié)方差(二元)corr()相關(guān)(二進制)
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python streamlit構(gòu)建令人驚嘆的可視化Web高級主題界面
本文將深入探討Streamlit的方方面面,從基礎(chǔ)使用到高級主題,從數(shù)據(jù)可視化到部署與分享,更涵蓋了性能優(yōu)化、安全性考慮等最佳實踐,通過豐富的示例代碼和詳細(xì)解釋,將能夠全面了解Streamlit的強大功能,并在構(gòu)建數(shù)據(jù)驅(qū)動應(yīng)用時游刃有余2024-01-01
Pycharm連接遠(yuǎn)程服務(wù)器并實現(xiàn)遠(yuǎn)程調(diào)試的實現(xiàn)
這篇文章主要介紹了Pycharm連接遠(yuǎn)程服務(wù)器并實現(xiàn)遠(yuǎn)程調(diào)試的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Python BeautifulReport可視化報告代碼實例
這篇文章主要介紹了Python BeautifulReport可視化報告代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04
python繪制發(fā)散型柱狀圖+誤差陰影時間序列圖+雙坐標(biāo)系時間序列圖+繪制金字塔圖
這篇文章主要介紹了python繪制發(fā)散型柱狀圖+誤差陰影時間序列圖+雙坐標(biāo)系時間序列圖+繪制金字塔圖,詳細(xì)的內(nèi)容需要的小伙伴可以參考一下下面文章內(nèi)容2022-08-08
python畫圖時設(shè)置分辨率和畫布大小的實現(xiàn)(plt.figure())
這篇文章主要介紹了python畫圖時設(shè)置分辨率和畫布大小的實現(xiàn)(plt.figure()),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

