Dataframe
是这样的:
Index A
0 3
1 2
2 5
3 4
4 1
5 2
6 7
7 3
8 1
字符串
我需要和移位一起去,取5块,这样最大值就在它们的中心。
测试结果:
Index A Res
0 3 0
1 2 0
2 5 5
3 4 0
4 1 0
5 2 0
6 7 7
7 3 0
8 1 0
型
我如何使用pandas方法实现它?
2条答案
按热度按时间jljoyd4f1#
您可以将
rolling
与center=True
和step=5
参数一起使用:字符串
输出量:
型
如果你想要
0
s,要么用它们(df['Res'] = 0
)预先填充列,要么使用@Corralien的方法从注解中使用掩码:型
输出量:
型
yhuiod9q2#
要使用pandas实现这一点,您可以使用rolling方法为列'A'获取一个大小为5的滑动窗口。然后,您可以使用apply方法检查窗口的中心(即第三个元素)是否是该窗口中的最大值。如果是,则将该值设置为中心值;否则,将其设置为0。下面是如何实现的:
字符串