Reputation: 191
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
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