亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

對(duì)pandas中時(shí)間窗函數(shù)rolling的使用詳解

 更新時(shí)間:2018年11月28日 15:22:04   作者:weijian001  
今天小編就為大家分享一篇對(duì)pandas中時(shí)間窗函數(shù)rolling的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

在建模過(guò)程中,我們常常需要需要對(duì)有時(shí)間關(guān)系的數(shù)據(jù)進(jìn)行整理。比如我們想要得到某一時(shí)刻過(guò)去30分鐘的銷(xiāo)量(產(chǎn)量,速度,消耗量等),傳統(tǒng)方法復(fù)雜消耗資源較多,pandas提供的rolling使用簡(jiǎn)單,速度較快。

函數(shù)原型和參數(shù)說(shuō)明

DataFrame.rolling(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0, closed=None)

window:表示時(shí)間窗的大小,注意有兩種形式(int or offset)。如果使用int,則數(shù)值表示計(jì)算統(tǒng)計(jì)量的觀測(cè)值的數(shù)量即向前幾個(gè)數(shù)據(jù)。如果是offset類(lèi)型,表示時(shí)間窗的大小。pandas offset相關(guān)可以參考這里

min_periods:最少需要有值的觀測(cè)點(diǎn)的數(shù)量,對(duì)于int類(lèi)型,默認(rèn)與window相等。對(duì)于offset類(lèi)型,默認(rèn)為1。

freq:從0.18版本中已經(jīng)被舍棄。

center:是否使用window的中間值作為label,默認(rèn)為false。只能在window是int時(shí)使用。

# 為方便觀察,并列排列

df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]})
df.rolling(3, min_periods=1).sum()
df.rolling(3, min_periods=1, center=True).sum()
 B B1 B2
0 0.0 0.0 1.0
1 1.0 1.0 3.0
2 2.0 3.0 3.0
3 NaN 3.0 6.0
4 4.0 6.0 4.0

win_type:窗口類(lèi)型,默認(rèn)為None一般不特殊指定,了解支持的其他窗口類(lèi)型,參考這里。

on:對(duì)于DataFrame如果不使用index(索引)作為rolling的列,那么用on來(lái)指定使用哪列。

closed:定義區(qū)間的開(kāi)閉,曾經(jīng)支持int類(lèi)型的window,新版本已經(jīng)不支持了。對(duì)于offset類(lèi)型默認(rèn)是左開(kāi)右閉的即默認(rèn)為right??梢愿鶕?jù)情況指定為left both等。

axis:方向(軸),一般都是0。

舉例

一個(gè)簡(jiǎn)單的場(chǎng)景,從A向B運(yùn)送東西,我們想看一下以3秒作為一個(gè)時(shí)間窗運(yùn)送的量。

# A地有兩個(gè)倉(cāng)庫(kù),都運(yùn)往B。
df = pd.DataFrame({'1': ['A1', 'A2', 'A1', 'A2', 'A2', 'A1', 'A2'],
     '2': ['B1', 'B1', 'B1', 'B1', 'B1', 'B1', 'B1'],
     'num': [1,2,1,3,4,2,1]}, 
     index = [pd.Timestamp('20130101 09:00:00'),
       pd.Timestamp('20130101 09:00:01'),
       pd.Timestamp('20130101 09:00:02'),
       pd.Timestamp('20130101 09:00:03'),
       pd.Timestamp('20130101 09:00:04'),
       pd.Timestamp('20130101 09:00:05'),
       pd.Timestamp('20130101 09:00:06')])
# 1 2 num
# 2013-01-01 09:00:00 A1 B1 1
# 2013-01-01 09:00:01 A2 B1 2
# 2013-01-01 09:00:02 A1 B1 1
# 2013-01-01 09:00:03 A2 B1 3
# 2013-01-01 09:00:04 A2 B1 4
# 2013-01-01 09:00:05 A1 B1 2
# 2013-01-01 09:00:06 A2 B1 1

使用rolling進(jìn)行計(jì)算

# 首先我們先對(duì)groupby進(jìn)行聚合(如果只有從A->B,那么不用聚合一個(gè)rolling就可以)
# 以9:00:04秒為例,由于時(shí)間窗是3s,默認(rèn)的closed是right,所以我們相加04,03,02秒的num,共有4+3+0=7
df.groupby(['1', '2'])['num'].rolling('3s').sum()
# 1 2      
# A1 B1 2013-01-01 09:00:00 1.0
#   2013-01-01 09:00:02 2.0
#   2013-01-01 09:00:05 2.0
# A2 B1 2013-01-01 09:00:01 2.0
#   2013-01-01 09:00:03 5.0
#   2013-01-01 09:00:04 7.0
#   2013-01-01 09:00:06 5.0
# Name: num, dtype: float64

由于使用groupby,所以最后的結(jié)果是MultiIndex,想使用正常格式在DataFrame上使用reset_index()即可。

以上這篇對(duì)pandas中時(shí)間窗函數(shù)rolling的使用詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python實(shí)戰(zhàn)之PyQt5實(shí)現(xiàn)漫畫(huà)臉

    python實(shí)戰(zhàn)之PyQt5實(shí)現(xiàn)漫畫(huà)臉

    本文詳細(xì)講解了python實(shí)戰(zhàn)之PyQt5實(shí)現(xiàn)漫畫(huà)臉的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • python 裝飾器功能與用法案例詳解

    python 裝飾器功能與用法案例詳解

    這篇文章主要介紹了python 裝飾器功能與用法,結(jié)合具體實(shí)例形式詳細(xì)分析了python 裝飾器的基本原理、功能、用法及操作注意事項(xiàng)
    2020-03-03
  • 聊聊Python中的浮點(diǎn)數(shù)運(yùn)算不準(zhǔn)確問(wèn)題

    聊聊Python中的浮點(diǎn)數(shù)運(yùn)算不準(zhǔn)確問(wèn)題

    這篇文章主要介紹了聊聊Python中的浮點(diǎn)數(shù)運(yùn)算不準(zhǔn)確問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 已解決卸載pip重新安裝的方法

    已解決卸載pip重新安裝的方法

    粉絲群里面的一個(gè)小伙伴遇到問(wèn)題跑來(lái)私信我,想用卸載pip重新安裝pip,但是發(fā)生了報(bào)錯(cuò)(當(dāng)時(shí)他心里瞬間涼了一大截,跑來(lái)找我求助,然后順利幫助他解決了,順便記錄一下希望可以幫助到更多遇到這個(gè)問(wèn)題的小伙伴
    2023-04-04
  • python使用multiprocessing模塊實(shí)現(xiàn)帶回調(diào)函數(shù)的異步調(diào)用方法

    python使用multiprocessing模塊實(shí)現(xiàn)帶回調(diào)函數(shù)的異步調(diào)用方法

    這篇文章主要介紹了python使用multiprocessing模塊實(shí)現(xiàn)帶回調(diào)函數(shù)的異步調(diào)用方法,實(shí)例分析了multiprocessing模塊異步調(diào)用的相關(guān)使用技巧,需要的朋友可以參考下
    2015-04-04
  • Python連接字符串過(guò)程詳解

    Python連接字符串過(guò)程詳解

    這篇文章主要介紹了python連接字符串過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • PyQt5+requests實(shí)現(xiàn)車(chē)票查詢(xún)工具

    PyQt5+requests實(shí)現(xiàn)車(chē)票查詢(xún)工具

    這篇文章主要為大家詳細(xì)介紹了PyQt5+requests實(shí)現(xiàn)車(chē)票查詢(xún)工具,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Python解決爬蟲(chóng)程序卡死問(wèn)題

    Python解決爬蟲(chóng)程序卡死問(wèn)題

    這篇文章主要介紹了Python解決爬蟲(chóng)程序卡死問(wèn)題,文章圍繞主題展開(kāi)詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05
  • python3解析庫(kù)BeautifulSoup4的安裝配置與基本用法

    python3解析庫(kù)BeautifulSoup4的安裝配置與基本用法

    簡(jiǎn)單來(lái)說(shuō),BeautifulSoup就是Python的一個(gè)HTML或XML的解析庫(kù),我們可以用它來(lái)方便地從網(wǎng)頁(yè)中提取數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于python3解析庫(kù)BeautifulSoup4的安裝配置與基本用法的相關(guān)資料,需要的朋友可以參考下
    2018-06-06
  • Python身份運(yùn)算符is與is?not區(qū)別用法基礎(chǔ)教程

    Python身份運(yùn)算符is與is?not區(qū)別用法基礎(chǔ)教程

    這篇文章主要為大家介紹了Python身份運(yùn)算符is與is?not區(qū)別用法基礎(chǔ)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06

最新評(píng)論