【发布时间】:2019-12-17 09:18:54
【问题描述】:
我有一个很大的 df,我正在尝试查找特定列中的值高于给定数字但在 3 行的窗口内的所有行,并且只返回给定数字上具有最高值的行。
A B C D E
1 5 9 10 15
2 4 7 12 16
3 3 5 10 18
4 2 3 15 17
5 1 1 10 14
6 5 9 17 13
7 4 7 10 14
8 3 5 19 19
9 2 3 10 18
10 4 7 5 14
11 3 5 6 19
12 2 3 7 18
如果我想对上面的 D 列示例执行此操作,其中值必须大于 11,则输出将为。
A B C D E
2 4 7 12 16
6 5 9 17 13
8 3 5 19 19.
解决此问题的最佳方法是什么?
我试过了:
df.rolling(3,win_type=None, on='D')
但找不到包含大于条件的方法。
感谢任何帮助。谢谢!
【问题讨论】:
-
这能回答你的问题吗? how do I calculate a rolling idxmax
-
不完全是,我不想返回每个窗口中的最大值,因为有时值会低于我要设置的最小值。
-
我认为任何 pandas 方法都无济于事,您应该使用简单的 for 循环解析。如果你想要,我可以帮忙。