欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用pandas中的DataFrame.rolling方法查看時間序列中的異常值

 更新時間:2023年12月25日 09:54:28   作者:阿桐木123  
Pandas是Python中最受歡迎的數(shù)據(jù)分析和處理庫之一,提供了許多強(qiáng)大且靈活的數(shù)據(jù)操作工具,在Pandas中,DataFrame.rolling方法是一個強(qiáng)大的工具,在本文中,我們將深入探討DataFrame.rolling方法的各種參數(shù)和示例,以幫助您更好地理解和應(yīng)用這個功能

前言

Pandas是Python中最受歡迎的數(shù)據(jù)分析和處理庫之一,提供了許多強(qiáng)大且靈活的數(shù)據(jù)操作工具。在Pandas中,DataFrame.rolling方法是一個強(qiáng)大的工具,用于執(zhí)行滾動窗口計算,能夠?qū)?shù)據(jù)進(jìn)行平滑處理、計算移動平均值和其他滾動統(tǒng)計量等操作。在本文中,我們將深入探討DataFrame.rolling方法的各種參數(shù)和示例,以幫助您更好地理解和應(yīng)用這個功能。

DataFrame.rolling方法的參數(shù)說明

window參數(shù)

window參數(shù)用于指定滾動窗口的大小,可以是整數(shù)、時間間隔、字符串、偏移量或BaseIndexer子類。具體如下:

  • 整數(shù):固定窗口大小的觀測數(shù)量。
  • 時間間隔、字符串、偏移量:每個窗口的時間周期,僅適用于日期時間型索引。
  • BaseIndexer子類:基于定義的get_window_bounds方法的窗口邊界。

min_periods參數(shù)

min_periods參數(shù)指定窗口中所需的最小觀測數(shù)量,用于計算結(jié)果值。默認(rèn)為None。

center參數(shù)

center參數(shù)用于設(shè)置窗口標(biāo)簽的位置。默認(rèn)為False。

  • False:將窗口標(biāo)簽設(shè)置為窗口索引的右邊緣。
  • True:將窗口標(biāo)簽設(shè)置為窗口索引的中心。

win_type參數(shù)

win_type參數(shù)用于指定窗口類型,默認(rèn)為None。

  • None:所有點均勻加權(quán)。
  • 字符串:必須是有效的scipy.signal窗口函數(shù)。

on參數(shù)

on參數(shù)用于DataFrame,指定在哪個列標(biāo)簽或索引級別上計算滾動窗口,而不是使用DataFrame的索引。

axis參數(shù)

axis參數(shù)指定滾動操作的軸向,默認(rèn)為0。

  • 0或'index':沿行進(jìn)行滾動。
  • 1或'columns':沿列進(jìn)行滾動。

closed參數(shù)

closed參數(shù)指定窗口的閉合方式,默認(rèn)為None('right')。

  • 'right':排除窗口中的第一個點。
  • 'left':排除窗口中的最后一個點。
  • 'both':不包括窗口中的任何點。
  • 'neither':排除窗口中的第一個和最后一個點。

step參數(shù)

step參數(shù)用于在每個步驟處計算窗口結(jié)果,相當(dāng)于切片操作[::step]。在1.5.0版中新增。

method參數(shù)

method參數(shù)用于指定單列或行('single')或整個對象('table')的滾動操作。在1.3.0版中新增。

返回值

DataFrame.rolling方法返回一個pandas.api.typing.Windowpandas.api.typing.Rolling的實例。

示例

以下是一些DataFrame.rolling方法的使用示例:

  • 使用不同窗口大小進(jìn)行滾動求和。
  • 在時間序列數(shù)據(jù)上使用時間間隔進(jìn)行滾動計算。
  • 使用不同參數(shù)進(jìn)行滾動操作。
  • 在日期列上進(jìn)行滾動計算。
# 示例代碼
import pandas as pd
import numpy as np

# 創(chuàng)建示例數(shù)據(jù)
df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]})

# 滾動求和示例
result = df.rolling(2).sum()
print(result)
df.rolling(2).sum()
     B
0  NaN
1  1.0
2  3.0
3  NaN
4  NaN
  • 相當(dāng)于包括自己往前兩個為一個窗口,進(jìn)行sum(),對于第一個因為前面為0所以為Nan,對于第二個數(shù) = 0 + 1 = 1 ,同理第三個數(shù) = 1 + 2 = 3.

在時間序列上的應(yīng)用

介紹:基于時間窗口的滾動求和

在數(shù)據(jù)處理中,經(jīng)常需要對時間序列數(shù)據(jù)執(zhí)行滾動窗口計算以獲取更深層次的見解。Pandas庫中的DataFrame.rolling方法為我們提供了一種便捷的方式來進(jìn)行此類操作。特別是,在時間序列數(shù)據(jù)中,通過指定時間間隔來計算滾動統(tǒng)計量可以洞察數(shù)據(jù)的趨勢和模式。

讓我們以一個具體的示例來說明:我們有一個包含時間戳索引的DataFrame df_time,其中的列B包含了一些數(shù)值數(shù)據(jù)。我們希望對這個數(shù)據(jù)執(zhí)行滾動求和,并且窗口的寬度是2秒。

import pandas as pd
import numpy as np

# 創(chuàng)建示例數(shù)據(jù)
df_time = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]},
                       index=[pd.Timestamp('20130101 09:00:00'),
                              pd.Timestamp('20130101 09:00:02'),
                              pd.Timestamp('20130101 09:00:03'),
                              pd.Timestamp('20130101 09:00:05'),
                              pd.Timestamp('20130101 09:00:06')])
print(df_time)

df_time
                       B
2013-01-01 09:00:00  0.0
2013-01-01 09:00:02  1.0
2013-01-01 09:00:03  2.0
2013-01-01 09:00:05  NaN
2013-01-01 09:00:06  4.0

result = df_time.rolling('2s').sum()
print(result)

                       B
2013-01-01 09:00:00  0.0
2013-01-01 09:00:02  1.0
2013-01-01 09:00:03  3.0
2013-01-01 09:00:05  NaN
2013-01-01 09:00:06  4.0

再來一個時間序列查看異常值的例子

# pick a window size 
window_size = 25

![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5f50add371c3406aa9b246dd6e76579e~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1278&h=615&s=112122&e=png&b=f0f0f0)
# calculate rolling mean and standard deviation
xroll = series['value'].rolling(window_size)
series['mean_roll'] = xroll.mean()
series['sd_roll'] = xroll.std()

# calculate the Z-score
series['zscore'] = np.abs( (series['value'] - series['mean_roll']) / series['sd_roll'])
series['zscore'].plot()

series.loc[series['zscore'] > 3][['timestamp', 'value']]

以上是DataFrame.rolling方法的參數(shù)說明和示例,該方法提供了強(qiáng)大的滾動窗口計算功能,可在時間序列和數(shù)據(jù)處理中發(fā)揮重要作用。

到此這篇關(guān)于使用pandas中的DataFrame.rolling方法查看時間序列中的異常值的文章就介紹到這了,更多相關(guān)pandas DataFrame.rolling查看異常值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論