Python pandas функция, эквивалентная формуле Excel - PullRequest
0 голосов
/ 26 мая 2020

Я хочу создать новый столбец «Счетчик непрерывных циклов» с python эквивалентом приведенной ниже формулы Excel. Первая строка по умолчанию должна содержать 0.

=IF(AND(AD2="None",AD3="Discharge"),AF2+1,IF(AND(AD2="Discharge",AD3="Discharge"),AF2,AF2))

AD = 'Batt Disch'

AF = 'Continous Cycle count'

MY Dataframe должен выглядеть как

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

Значение в этом примере для этого столбца варьируется от От 0 до 55

1 Ответ

1 голос
/ 26 мая 2020
import pandas as pd
df = pd.DataFrame({'Batt Discharge': ['None', 'None','Discharge','Discharge','None','Discharge','Discharge']})

df.loc[df[df['Batt Discharge'].eq('Discharge')&df['Batt Discharge'].shift().eq('None')].index, 'Continuous Cycle count'] = 1
df['Continuous Cycle count'] = df['Continuous Cycle count'].fillna(0).cumsum().astype(int)

Результат:

  Batt Discharge  Continuous Cycle count
0           None                       0
1           None                       0
2      Discharge                       1
3      Discharge                       1
4           None                       1
5      Discharge                       2
6      Discharge                       2
...