基于另一列的当前行和同一列的上一行的列的增量值

2024-06-02 12:28:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个具有多个条件的列,其中,如果列“Batt”包含“Discharge”,而前一行包含“none”,则将值增加1,从0开始,如果不是,则返回相同的值,不增加任何增量

 Batt Disch            Continous Cycle count   
       None                0   
       None                0   
       Discharge           1  
       Discharge           1  
       None                1   
       Discharge           2  
       Discharge           2

Tags: nonecount条件增量cyclebattdischargedisch
1条回答
网友
1楼 · 发布于 2024-06-02 12:28:39

IIUC,您可以创建一个boolean mask,然后使用^{}获得结果:

df['Continous Cycle count'] = (
    (df['Batt Disch'].eq('Discharge') &
     df['Batt Disch'].shift().eq('None'))
    .cumsum()
)

结果:

  Batt Disch  Continous Cycle count
0       None                      0
1       None                      0
2  Discharge                      1
3  Discharge                      1
4       None                      1
5  Discharge                      2
6  Discharge                      2

相关问题 更多 >