gpt4 book ai didi

python - Pandas 滚动窗口和日期时间索引 : What does `offset` mean?

转载 作者:太空狗 更新时间:2023-10-29 21:36:02 27 4
gpt4 key购买 nike

滚动窗口函数pandas.DataFrame.rolling pandas 0.22 的 window 参数如下所述:

window : int, or offset

Size of the moving window. This is the number of observations used for calculating the statistic. Each window will be a fixed size.

If its an offset then this will be the time period of each window. Each window will be a variable sized based on the observations included in the time-period. This is only valid for datetimelike indexes. This is new in 0.19.0

在这种情况下,偏移量实际上是什么?

最佳答案

简而言之,如果您使用像“2D”(2 天)这样的 offset,pandas 将使用索引中的日期时间信息(如果可用),可能会解释任何缺失的行或不规则的行频率。但是,如果您使用像 2 这样的简单 int,那么 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

请注意 (1) 索引是一个日期时间,而且 (2) 它缺少“2018-01-03”。因此,如果您使用像 2 这样的普通整数,rolling 将只查看最后两行,而不考虑日期时间值(从某种意义上说,它的行为类似于 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

相反,如果您使用 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

另请注意,在使用日期偏移量时,您需要按升序对索引进行排序,但在使用简单整数时并不重要(因为您只是忽略了索引)。

关于python - Pandas 滚动窗口和日期时间索引 : What does `offset` mean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48855400/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com