最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

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

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

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

# 為方便觀察,并列排列

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:窗口類型,默認(rèn)為None一般不特殊指定,了解支持的其他窗口類型,參考這里。

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

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

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

舉例

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

# A地有兩個倉庫,都運(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)行計算

# 首先我們先對groupby進(jìn)行聚合(如果只有從A->B,那么不用聚合一個rolling就可以)
# 以9:00:04秒為例,由于時間窗是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()即可。

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

相關(guān)文章

  • Python和GO語言實現(xiàn)的消息摘要算法示例

    Python和GO語言實現(xiàn)的消息摘要算法示例

    這篇文章主要介紹了Python和GO語言實現(xiàn)的消息摘要算法示例,本文講解了python消息摘要示例、go語言消息摘要示例及各自的運(yùn)行效果,需要的朋友可以參考下
    2015-03-03
  • python-redis-lock實現(xiàn)鎖自動續(xù)期的源碼邏輯

    python-redis-lock實現(xiàn)鎖自動續(xù)期的源碼邏輯

    這篇文章主要介紹了python-redis-lock實現(xiàn)鎖自動續(xù)期的源碼邏輯,其中用到了多線程threading、弱引用weakref和Lua腳本等相關(guān)知識,需要的朋友可以參考下
    2024-07-07
  • Python操作lxml庫實戰(zhàn)之Xpath篇

    Python操作lxml庫實戰(zhàn)之Xpath篇

    XPath是一門在XML文檔中查找信息的語言,下面這篇文章主要給大家介紹了關(guān)于Python操作lxml庫實戰(zhàn)之Xpath篇的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • Python?OpenCV形態(tài)學(xué)運(yùn)算示例詳解

    Python?OpenCV形態(tài)學(xué)運(yùn)算示例詳解

    這篇文章主要為大家介紹了OpenCV中的幾個形態(tài)學(xué)運(yùn)算,例如:腐蝕&膨脹、開&閉運(yùn)算、梯度運(yùn)算、頂帽運(yùn)算黑帽運(yùn)算,感興趣的可以了解一下
    2022-04-04
  • 詳解如何用Python模擬登錄淘寶

    詳解如何用Python模擬登錄淘寶

    最近想爬取淘寶的一些商品,但是發(fā)現(xiàn)如果要使用搜索等一些功能時基本都需要登錄,所以就想出一篇模擬登錄淘寶的文章!本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Python實現(xiàn)mysql數(shù)據(jù)庫中的SQL文件生成和導(dǎo)入

    Python實現(xiàn)mysql數(shù)據(jù)庫中的SQL文件生成和導(dǎo)入

    這篇文章主要介紹了Python實現(xiàn)mysql數(shù)據(jù)庫中的SQL文件生成和導(dǎo)入,首先通過將mysql數(shù)據(jù)導(dǎo)出到SQL文件中展開詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-06-06
  • Python中字符串去空格的五種方法介紹與對比

    Python中字符串去空格的五種方法介紹與對比

    在?Python?中,去除字符串中的空格是一個常見的操作,這篇文章小編將為大家盤點一下python中常用的的去空格的方法,需要的可以參考一下
    2025-02-02
  • 編寫python代碼實現(xiàn)簡單抽獎器

    編寫python代碼實現(xiàn)簡單抽獎器

    這篇文章主要介紹了編寫python代碼實現(xiàn)簡單抽獎器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 如何在VSCode下使用Jupyter的教程詳解

    如何在VSCode下使用Jupyter的教程詳解

    這篇文章主要介紹了如何在VSCode下使用Jupyter,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Python實現(xiàn)計算圓周率π的值到任意位的方法示例

    Python實現(xiàn)計算圓周率π的值到任意位的方法示例

    這篇文章主要介紹了Python實現(xiàn)計算圓周率π的值到任意位的方法,簡單分析了圓周率的計算原理,并結(jié)合實例形式分析了Python計算圓周率的相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05

最新評論

长寿区| 棋牌| 吉安市| 甘孜| 荔波县| 广河县| 麦盖提县| 游戏| 株洲市| 天台县| 大同县| 宣汉县| 永仁县| 金乡县| 定南县| 临夏市| 平罗县| 青铜峡市| 新河县| 波密县| 威远县| 富宁县| 白朗县| 乐安县| 南宫市| 健康| 新丰县| 平昌县| 自贡市| 桂阳县| 松江区| 涪陵区| 新郑市| 阿克苏市| 东乡族自治县| 安泽县| 会泽县| 禹城市| 雷州市| 巴中市| 麻阳|