如何找到列 CumSum 等于 X 的 Pandas 数据帧的行索引?

How to find the row index of Pandas dataframe at which a column CumSum equals X?

考虑以下 DataFrame df:

index    A
    0   -1
    1    0
    2    1
    3   -1  # <==== here, df['A'].cumsum() == 0, starting from last row 
    4   -1
    5   -1
    6    1
    7   -1
    8    1
    9    1
    10   1

我正在尝试确定 A - 从最后一行算起 - - 的累积总和在哪一行等于零。

,如果一列包含负值,解决方案将不起作用,这是我的情况。

我猜是从上到下移动

df[df['A'].cumsum() == 0]

可以,但需要颠倒此过程。

对于如何执行此操作,您有任何指示吗?

您可以使用 [::-1] 来获得受人尊敬的 cumsum。这将 return cumsum = 0:

的所有结果
df[df['A'][::-1].cumsum() == 0]

   index    A
0   0      -1
3   3      -1

如果你只想要最后一个,那么做:

df[df['A'][::-1].cumsum() == 0].iloc[-1]

index    3
A       -1

[::-1] 可以反转任何系列或列表:

df[df['A'][::-1].cumsum()==0]