假设我们有一个如下表:
A B
1 1.0
2 2.0
3 2.0
4 3.0
5 2.0
6 1.0
7 1.0
现在,我要为每一行从下一行的A列中获取值,其中B<;=2.0。结果存储在C中。然后我们得到:
A B C
1 1.0 2
2 2.0 3 # Here we skip a row because next.B > 2.0
3 2.0 5
4 3.0 5
5 2.0 6
6 1.0 7
7 1.0 Na
有没有一种方法可以在熊猫(或Numpy)身上有效地实现这一点?数据帧可能包含数百万行,我希望此操作最多需要几秒钟。你知道吗
如果没有快速的Pandas/Numpy解决方案,我就用Numba编写代码。然而,由于某些原因,我过去对类似问题的Numba解决方案(nopython&nested for&break)相当慢,这就是为什么我要求更好的方法。你知道吗
上下文:Here我问如何在延迟过期之前从下一行获取时间序列数据帧中每一行的值。这个问题是相关的,但不使用time/a排序列,因此searchsorted
不能使用。你知道吗
您只需执行以下几个步骤:
这将导致:
您只需要在小于或等于
2
和reindex
和bfill
和shift
的B
上切片df
相关问题 更多 >
编程相关推荐