根据条件从某个值增加数据框列

Increment dataframe column from a certain value based on condition

我有一个数据框,我想根据不同列的条件创建一个新列。创建以 2348 开头的新列“ans”,并基于列“ix”递增。在“ix”列中,如果值与下一个相同,则保持“ans”列相同,如果其增量不同,则为“ans”

感谢您的回答

  index   ix  
    1     pa 
    2     pa
    3     pa
    4     pe
    5     fc
    6     pb
    7     pb
    8     df

应该导致:-

  index   ix  ans
    1     pa   2348
    2     pa   2348
    3     pa   2348
    4     pe   2349
    5     fc   2350
    6     pb   2351
    7     pb   2351
    8     df   2352

您可以使用 shift() 检查 ix 列与其前一行是否相等,并使用 cumsum():

df['ans'] = (
    df['ix'].ne(df['ix'].shift(1))
    ).cumsum().add(2348) - 1

打印:

   index  ix   ans
0      1  pa  2348
1      2  pa  2348
2      3  pa  2348
3      4  pe  2349
4      5  fc  2350
5      6  pb  2351
6      7  pb  2351
7      8  df  2352