如何找到列 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]
考虑以下 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]