asc*_*ter 9 python datetime dataframe pandas
pandas.DataFrame.rolling
pandas 0.22 的滚动窗口函数采用window
如下所述的参数:
window:int或offset
移动窗口的大小.这是用于计算统计量的观测数.每个窗口都是固定大小.
如果是偏移量,那么这将是每个窗口的时间段.每个窗口将是基于时间段中包括的观察值而变化的大小.这仅适用于类似datetime的索引.这是0.19.0中的新功能
在这种情况下,实际上是一个偏移量?
Joh*_*hnE 11
简而言之,如果你使用offset
类似"2d"(2天),pandas将使用索引中的日期时间信息(如果可用),可能会导致任何缺失的行或不规则的频率.但是如果你使用int
像2这样的简单,那么pandas会将索引视为一个简单的整数索引[0,1,2,...]并忽略索引中的任何日期时间信息.
一个简单的例子应该清楚地表明:
df=pd.DataFrame({'x':range(4)},
index=pd.to_datetime(['1-1-2018','1-2-2018','1-4-2018','1-5-2018']))
x
2018-01-01 0
2018-01-02 1
2018-01-04 2
2018-01-05 3
Run Code Online (Sandbox Code Playgroud)
注意(1)索引是日期时间,但也(2)它缺少'2018-01-03'.所以,如果你使用像2纯整数,rolling
将只是看最后两行,而不管datetime值(在一定意义上它表现得像的iloc[i-1:i]
地方i
是当前行):
df.rolling(2).count()
x
2018-01-01 1.0
2018-01-02 2.0
2018-01-04 2.0
2018-01-05 2.0
Run Code Online (Sandbox Code Playgroud)
相反,如果您使用2天('2d'
)的偏移量,rolling
将使用实际日期时间值和帐户来查找日期时间索引中的任何不规则.
df.rolling('2d').count()
x
2018-01-01 1.0
2018-01-02 2.0
2018-01-04 1.0
2018-01-05 2.0
Run Code Online (Sandbox Code Playgroud)
另请注意,在使用日期偏移时,您需要按升序对索引进行排序,但使用简单整数时无关紧要(因为您无论如何都只是忽略索引).
归档时间: |
|
查看次数: |
9194 次 |
最近记录: |