sourav khanna
sourav khanna

Reputation: 191

Change Pandas column value by checking multiple conditions

I have a Pandas Dataframe df

    Name  Age   Salary
0    Tom   28     100
1   Jack   34     200
2    Tom   28     100
3   Jack   34     200
4  Harry   36     300
5  Harry   36     300 

and I have a Numpy array of name name_array=['Tom', 'Jack', 'Harry']. I have another Numpy array name increment_array=[10,20,30]

What I want is

    Name  Age   Salary
0    Tom   28     1000
1   Jack   34     4000
2    Tom   28     1000
3   Jack   34     4000
4  Harry   36     9000
5  Harry   36     9000 

Upvotes: 1

Views: 56

Answers (1)

Dani Mesejo
Dani Mesejo

Reputation: 61910

You could use map:

name_array = ['Tom', 'Jack', 'Harry']
increment_array = [10, 20, 30]

lookup = dict(zip(name_array, increment_array))

df['Salary'] = df.Name.map(lookup) * df.Salary

print(df)

Output

    Name  Age  Salary
0    Tom   28    1000
1   Jack   34    4000
2    Tom   28    1000
3   Jack   34    4000
4  Harry   36    9000
5  Harry   36    9000

Upvotes: 6

Related Questions