问题描述
考虑以下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
的累积总和-从最后一行算起的 -等于零。
In this post,如果列包含负值,则该解决方案将无法使用。
我认为从上到下移动
df[df['A'].cumsum() == 0]
可以工作,但是此过程需要逆转。
您对此有任何建议吗?
解决方法
您可以使用[::-1]
来获得受尊敬的cumsum
。这将返回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]