df1:
Pan_no Target Debt_aum Hml
Xxx 0 5000 Low
YYY 1 0 medium
ZZZ 0 200 Low
Aaa 1 15000 High
Yyy 1 0 High
Condition:
If the debt_aum =0 and target =1 then hml should be Low for those rows.
Expected Output:
Pan_no Target Debt_aum Hml
Xxx 0 5000 Low
YYY 1 0 Low
ZZZ 0 200 Low
Aaa 1 15000 High
Yyy 1 0 Low
In SQL I will just write an update statement. In python I am having trouble.
I tired doing
for i in df1['hml']:
if df1[target] == 1 and df1[debt_aum] == 0:
i = 'Low'
else:
i
>Solution :
IIUC, you can try numpy.where function:
import pandas as pd
import numpy as np
df["Hml"] = np.where(((df["Debt_aum"] == 0) & (df["Target"])), "Low", df["Hml"])
df
Output
| Pan_no | Target | Debt_aum | Hml |
|---|---|---|---|
| Xxx | 0 | 5000 | Low |
| YYY | 1 | 0 | Low |
| ZZZ | 0 | 200 | Low |
| Aaa | 1 | 15000 | High |
| Yyy | 1 | 0 | Low |