在python数据帧中遇到值时如何生成数字序列

在python数据帧中遇到值时如何生成数字序列,python,pandas,dataframe,Python,Pandas,Dataframe,块1是当前数据,块2是预期数据,也就是说,当我遇到1时,我需要下一行增加1,对于下一个国家b,同样的情况应该发生首先替换第一个1到1之后的所有其他值,因此可以使用: 另一种解决方案是将所有非1值替换为缺失值,并将每组的1向前填充,然后将第一个缺失值替换为0,因此累积和也能很好地工作: s = df['v'].where(df['v'].eq(1)).groupby(df['c']).ffill().fillna(0).astype(int) df['new'] = s.groupby(df['c


块1是当前数据,块2是预期数据,也就是说,当我遇到1时,我需要下一行增加1,对于下一个国家b,同样的情况应该发生

首先替换第一个
1
1
之后的所有其他值,因此可以使用:

另一种解决方案是将所有非
1
值替换为缺失值,并将每组的
1
向前填充,然后将第一个缺失值替换为
0
,因此累积和也能很好地工作:

s = df['v'].where(df['v'].eq(1)).groupby(df['c']).ffill().fillna(0).astype(int)
df['new'] = s.groupby(df['c']).cumsum()

首先替换第一个
1
1
之后的所有其他值,以便可以使用:

另一种解决方案是将所有非
1
值替换为缺失值,并将每组的
1
向前填充,然后将第一个缺失值替换为
0
,因此累积和也能很好地工作:

s = df['v'].where(df['v'].eq(1)).groupby(df['c']).ffill().fillna(0).astype(int)
df['new'] = s.groupby(df['c']).cumsum()

简单来说,当值==1时,下一列值应增加1。无法求解yetOK,请使用实际数据测试我的解决方案。简单来说,当值==1时,下一列值应增加1。无法解决yetOK,请用您的真实数据测试我的解决方案。