Python 对数据帧尾部的值序列进行计数

Python 对数据帧尾部的值序列进行计数,python,pandas,dataframe,Python,Pandas,Dataframe,我试图获得熊猫数据帧尾部的1s计数。从该数据帧: x 1 2 3 1 1 1 我想得到3的计数。如果尾部没有1,则函数应返回0。我找不到熊猫的任何功能来做这件事。有什么想法吗?让我们用这个: d1.x[::-1].eq(1).cumprod().sum() 让我们用这个: d1.x[::-1].eq(1).cumprod().sum() 这真聪明!那家伙不知道他在说什么。。。这很聪明,好的。如果你一步一步地运行它,你会看到。我要做的第一件事是把序列倒序,这是因为你说的是“最后一个”。接下

我试图获得熊猫数据帧尾部的1s计数。从该数据帧:

x 
1
2
3
1
1
1
我想得到3的计数。如果尾部没有1,则函数应返回0。我找不到熊猫的任何功能来做这件事。有什么想法吗?

让我们用这个:

d1.x[::-1].eq(1).cumprod().sum()
让我们用这个:

d1.x[::-1].eq(1).cumprod().sum()

这真聪明!那家伙不知道他在说什么。。。这很聪明,好的。如果你一步一步地运行它,你会看到。我要做的第一件事是把序列倒序,这是因为你说的是“最后一个”。接下来,我检查该值是否等于1,接下来我使用cumprod计算系列末尾的1,如果该值不等于1,则使cumprod变为零。最后,将cumprod返回1的所有值相加。@renakre,按照我的方法,一次分解一个值,然后打印出每个步骤。这相当直截了当。神奇的是,当cumprod()第一次看到错误(即:0)时,它会转到零,然后保持在零。@Stephenrouch谢谢,你在解释方面做得比我好。这很聪明!那家伙不知道他在说什么。。。这很聪明,好的。如果你一步一步地运行它,你会看到。我要做的第一件事是把序列倒序,这是因为你说的是“最后一个”。接下来,我检查该值是否等于1,接下来我使用cumprod计算系列末尾的1,如果该值不等于1,则使cumprod变为零。最后,将cumprod返回1的所有值相加。@renakre,按照我的方法,一次分解一个值,然后打印出每个步骤。这相当直截了当。神奇的是,当cumprod()第一次看到错误(即:0)时,它会转到零,然后保持在零。@StephenRauch谢谢,你在解释方面做得比我好。