Skip to main content
 首页 » 编程设计

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

2025年05月04日13Renyi-Fan

我有一个 Pandas 数据框 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  

我有一个名称为 name_array=['Tom', 'Jack', 'Harry'] 的 Numpy 数组。我还有一个 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  

请您参考如下方法:

你可以使用 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) 

输出

    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