根据 where 条件替换 pandas dataframe 中的值

Replace value in pandas dataframe based on where condition

我使用以下代码创建了一个名为 df 的数据框:

import numpy as np
import pandas as pd

# initialize data of lists.
data = {'Feature1':[1,2,-9999999,4,5],
        'Age':[20, 21, 19, 18,34,]}
 
# Create DataFrame
df = pd.DataFrame(data)
print(df)

数据框如下所示:

   Feature1  Age
0         1   20
1         2   21
2  -9999999   19
3         4   18
4         5   34

每当 Feature1 列中出现 -9999999 的值时,我都需要将其替换为 Age 列中对应的值。所以,输出数据框看起来是这样的:

   Feature1  Age
0         1   20
1         2   21
2        19   19
3         4   18
4         5   34

请记住,我使用的实际数据框有 20 万条记录(上面显示的只是一个示例)。

如何在 pandas 中执行此操作?

您可以使用 np.whereSeries.mask

df['Feature1'] = df['Feature1'].mask(df['Feature1'].eq(-9999999), df['Age'])
# or
df['Feature1'] = np.where(df['Feature1'].eq(-9999999), df['Age'], df['Feature1'])