Python 如何替换满足条件的列中的值?

Python 如何替换满足条件的列中的值?,python,pandas,Python,Pandas,在pandas dataframe中,当用户为Lucas时,我需要将所有值1990.0替换为2002.0: User Val Mirk 1992.0 Lucas 1990.0 John 1980.0 Lucas 1990.0 Mirk 1992.0 预期产出: User Val Mirk 1992.0 Lucas 2002.0 John 1980.0 Lucas

在pandas dataframe中,当用户为Lucas时,我需要将所有值1990.0替换为2002.0:

User        Val
Mirk        1992.0
Lucas       1990.0
John        1980.0
Lucas       1990.0
Mirk        1992.0
预期产出:

User        Val
Mirk        1992.0
Lucas       2002.0
John        1980.0
Lucas       2002.0
Mirk        1992.0
我该怎么做?

使用布尔索引:

df.loc[df.User.eq('Lucas') & df.Val.eq(1990), 'Val'] += 12
使用布尔索引:

df.loc[df.User.eq('Lucas') & df.Val.eq(1990), 'Val'] += 12

您可以使用where from Numpy:

import numpy as np
df['Val'] = np.where((df['User'] == 'Lucas') & (df['Val'] == 1990), 2002, df['Val'])

您可以使用where from Numpy:

import numpy as np
df['Val'] = np.where((df['User'] == 'Lucas') & (df['Val'] == 1990), 2002, df['Val'])

检查
mask

df.Val.mask(df.User.eq('Lucas') & df.Val.eq(1990),2002,inplace=True)

检查
mask

df.Val.mask(df.User.eq('Lucas') & df.Val.eq(1990),2002,inplace=True)

您的预期输出似乎也更改了与
Mirk
对应的第一个
1992
。对不起,我的错误。我正在修理它。谢谢你的现场!您的预期输出似乎也更改了与
Mirk
对应的第一个
1992
。对不起,我的错误。我正在修理它。谢谢你的现场!