我有一个数据框 DF,两列 A 和 B 如下所示:
A B
1 0
3 0
4 0
2 1
6 0
4 1
7 1
8 1
1 0
第一部分:应执行滑动窗口方法,如下所示。我需要在大小为 3 的滑动窗口中计算 B 列的平均值,滑动 1 个位置。每个窗口的平均值都是手动计算的,并显示在左侧。
A: 1 3 4 2 6 4 7 8 1
B: 0 0 0 1 0 1 1 1 0
[0 0 0] 0
[0 0 1] 0.33
[0 1 0] 0.33
[1 0 1] 0.66
[0 1 1] 0.66
[1 1 1] 1
[1 1 0] 0.66
output: 0 0.33 0.33 0.66 0.66 1 1 1 0.66
第二部分:现在,对于 A 列中的每一行/坐标,所有包含该坐标的窗口都被考虑并应保留给出结果的最高平均值,如“输出”列所示。
第二部分详解:第一部分是计算滑动窗口3中滑动1个位置的均值。第二步是:对于A列中的每个坐标'i',应评估包含坐标'i'的所有窗口并保留最高平均分数。例如,在 A 列中,1 仅出现在第一个窗口中,因此 1 的分数为 0(这是第一个窗口的平均值)。同样,2 出现在第一个和第二个窗口中,因此 2 的分数应该是 window1 和 window2 的分数中最高的,即 max(0, 0.33333)。同样,3 出现在第一、第二和第三个窗口中,因此 3 的得分是前三个窗口得分的最大值,即 max(0,0.333333,0.3333333)。4 存在于第二个、第三个和第四个窗口中,因此 4 的分数是这些窗口分数的最大值,即 max(0.
我需要获得如上所示的输出。输出应该像:
A B Output
1 0 0
3 0 0.33
4 0 0.33
2 1 0.66
6 0 0.66
4 1 1
7 1 1
8 1 1
1 0 0.66
对 python 的任何帮助将不胜感激?