大家好!有一个脚本使用滚动来查找列中的最大值。当前窗口步长 = 1,即(1,3,1)
下一个滑动序列(3,1,5)
等。
如何设置 step = 3,即序列为(1,3,1)
and (5,10,5)
?
屏幕截图显示了窗口的移动,脚本最终应显示的最大值以红色突出显示。
找到了解决方案df.rolling(window=3,step=3)
,但它不起作用......
import pandas as pd
sample = {
'ID':[1,1,1,9,9,9],
'Quant' :[1,3,1,5,10,5]
}
df = pd.DataFrame(sample)
df2=df.rolling(3).agg({'Quant':'max'})
df3=df2.dropna(how='all')
print(df3)
您误解了滚动方法的工作原理。从任务的描述来看,它根本不适合你。我建议这样做:
也就是说,在
np.array_split
您的帮助下将数据框分成所需长度的片段,然后在每个片段中查找最大列Quant
。您还可以获得所需的最大值:
或过滤您想要的行: