通过检查多个条件来更改Pandas列值

sou*_*nna 1 python numpy pandas

我有一个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 
Run Code Online (Sandbox Code Playgroud)

我有一个Numpy名字name_array=['Tom', 'Jack', 'Harry'].我有另一个Numpy数组名称increment_array=[10,20,30]

我想要的是

    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 
Run Code Online (Sandbox Code Playgroud)

Dan*_*ejo 6

你可以用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)
Run Code Online (Sandbox Code Playgroud)

产量

    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
Run Code Online (Sandbox Code Playgroud)