I have a pandas dataframe
with columns val_min
and val_max
below:
df
val_min val_max
0 1001.0 1500.0
3 401.0 500.0
4 401.0 500.0
5 401.0 500.0
6 501.0 600.0
Now I am trying to create a new column using these two columns with pandas apply
function and create a new column based on some certain functions defined in my function, see my attempt below:
def get_range(df, val_min, val_max, new_col):
if df[val_min] <500 & df[val_max]<500:
df[new_col] = "<500"
elif df[val_min] >500 & df[val_max]<=1000:
df[new_col] = "500 - 1000"
elif df[val_min] >1000 & df[val_max]<=2000:
df[new_col] = "1000 - 2000"
elif df[val_min] >2000 & df[val_max]<=5000:
df[new_col] = "2000 - 5000"
elif df[val_min] >5000 & df[val_max]<=7500:
df[new_col] = "5000 - 7500"
elif df[val_min] >7500 & df[val_max]<=10000:
df[new_col] = "7500 - 10000"
elif df[val_min] >10000 & df[val_max]<=12000:
df[new_col] = "10000 - 12000"
elif df[val_min] >12000 & df[val_max]<=15000:
df[new_col] = "12000 - 15000"
elif df[val_min] >15000 & df[val_max]>15000:
df[new_col] = ">15000"
df["new_col"] = df[["val_min", "val_max"]].apply(get_range, axis=1)