Увеличение значений столбца на основе текущей строки другого столбца и предыдущей строки того же столбца - PullRequest
1 голос
/ 26 мая 2020

Я хочу создать столбец с несколькими условиями, в которых, если столбец «Batt» содержит «Discharge», а предыдущая строка содержит «none», то увеличивайте значение на 1, начиная с 0, если нет, то возвращайте то же значение без каких-либо приращений .

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

1 Ответ

1 голос
/ 26 мая 2020

IIU C, вы можете создать boolean mask, а затем использовать Series.cumsum, чтобы получить результат:

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
...