You can define a function which returns your different states "Full", "Partial", "Empty", etc and then use df.apply
to apply the function to each row. Note that you have to pass the keyword argument axis=1
to ensure that it applies the function to rows.
import pandas as pd
def alert(row):
if row['used'] == 1.0:
return 'Full'
elif row['used'] == 0.0:
return 'Empty'
elif 0.0 < row['used'] < 1.0:
return 'Partial'
else:
return 'Undefined'
df = pd.DataFrame(data={'portion':[1, 2, 3, 4], 'used':[1.0, 0.3, 0.0, 0.8]})
df['alert'] = df.apply(alert, axis=1)
# portion used alert
# 0 1 1.0 Full
# 1 2 0.3 Partial
# 2 3 0.0 Empty
# 3 4 0.8 Partial
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…