简体   繁体   English

确保熊猫滚动窗口函数中的窗口大小恒定

[英]Ensuring constant window size in pandas rolling window function

A some custom operation needs to be done on each rolling window of size 2 in a dataframe.需要对数据框中每个大小为 2 的滚动窗口进行一些自定义操作。 But rolling function in pandas, returns an output with initial window location with 1 element as well.但是 pandas 中的rolling函数返回一个带有初始窗口位置和 1 个元素的输出。 I tried setting the min_periods , but does not help here.我尝试设置min_periods ,但在这里没有帮助。

df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]})

for pairs in df.rolling(2, min_periods=2):
    print(pairs)

     B
0  0.0
     B
0  0.0
1  1.0
     B
1  1.0
2  2.0
     B
2  2.0
3  NaN
     B
3  NaN
4  4.0

Also indexing doesn't work for rolling function.索引也不适用于滚动功能。 Getting the following error for df.rolling(2)[1:] df.rolling(2)[1:] 出现以下错误

TypeError: unhashable type: 'slice' TypeError:不可散列的类型:'sl​​ice'

You could use numpy's sliding_window_view你可以使用numpy的sliding_window_view

np.lib.stride_tricks.sliding_window_view(df.B, 2)

array([[ 0.,  1.],
       [ 1.,  2.],
       [ 2., nan],
       [nan,  4.]])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM