将数据帧列中低于特定阈值的值替换为 NaN

And*_*rea 2 python nan dataframe pandas nonetype

假设我有以下示例数据框:

df = pd.DataFrame({'A': [4, 0.2, 3, 0.5], 'B': ['red', 'white', 'blue', 'green']})

     A      B
0  4.0    red
1  0.2  white
2  3.0   blue
3  0.5  green
Run Code Online (Sandbox Code Playgroud)

我试图用 NaN 替换列中低于特定阈值的条目,如下所示:

     A      B
0  4.0    red
1  NaN  white
2  3.0   blue
3  NaN  green
Run Code Online (Sandbox Code Playgroud)

这是我的尝试:

cutoff = 2
df['A'] = df['A'].apply(lambda x: [y if y > cutoff else None for y in x])
Run Code Online (Sandbox Code Playgroud)

我收到的错误:

TypeError: 'float' object is not iterable
Run Code Online (Sandbox Code Playgroud)

我哪里出错了?None我认为这与类型有关

WeN*_*Ben 5

np.where

df['A'] = np.where(df['A']<=cutoff , np.nan, df['A'])
Run Code Online (Sandbox Code Playgroud)