gpt4 book ai didi

python - 使用滑动窗口和转置进行分组

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:49 24 4
gpt4 key购买 nike

数据框 (df) 包含如下两列:

A    B
46 0
45 1
46 1
51 1
47 1
46 1
45 0
48 0
47 0
45 1
49 1

我需要为每三行设计一种滑动窗口分组,这样:

1) 取前三行,转置 column(A) 并追加 column(B) 的第三个条目,所以我们得到一行四列,如下所示:

46 45 46 1

2) 然后向下移动一行(即从原始 df 中的第 2 行开始),重复步骤 1,得到第二个输出,如下所示。

45 46 51 1

3) 在每次迭代中,我们得到如下连续输出:

46 51 47 1
51 47 46 1
47 46 45 0
...

总而言之,所需的输出是 -

46 45 46 1
45 46 51 1
46 51 47 1
51 47 46 1
47 46 45 0
...

最佳答案

这是一个使用 numpystride_tricks 的解决方案 -

as_strided = np.lib.stride_tricks.as_strided

w = 3 # window size

i = as_strided(df.A.values, (len(df) - (w - 1), w), df.A.strides * 2)
j = df[['B']].values[(w - 1):]

np.hstack((i, j))

array([[46, 45, 46, 1],
[45, 46, 51, 1],
[46, 51, 47, 1],
[51, 47, 46, 1],
[47, 46, 45, 0],
[46, 45, 48, 0],
[45, 48, 47, 0],
[48, 47, 45, 1],
[47, 45, 49, 1]])

关于python - 使用滑动窗口和转置进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47505790/

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