[SOLVED] How to update existing columns in a dataframe based on multiple conditions on other columns in python?

Table of Contents

Issue

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

Answered By – Amirhossein Kiani

Answer Checked By – Dawn Plyler (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published. Required fields are marked *