Harish reddy
Harish reddy

Reputation: 431

Python pandas function equivalent to Excel formula

I want to create a new column 'Continous Cycle count' with the python equivalent of the below excel formula The 1st row by default should contain a 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 should look like

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

The value in this example for this column ranges from 0 to 55

Upvotes: 0

Views: 205

Answers (1)

Stef
Stef

Reputation: 30609

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)

Result:

  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

Upvotes: 1

Related Questions