Reputation: 431
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
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