python - 用 NaN 替换数据框列中低于特定阈值的值

标签 python pandas dataframe nan 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

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

     A      B
0  4.0    red
1  NaN  white
2  3.0   blue
3  NaN  green

这是我的尝试:

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

我收到的错误:

TypeError: 'float' object is not iterable

我哪里做错了?我认为它与 None 类型有关

最佳答案

np.where

df['A'] = np.where(df['A']<=cutoff , np.nan, df['A'])

关于python - 用 NaN 替换数据框列中低于特定阈值的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63193026/

相关文章:

python - Pandas:如何结合 nunique 和 sum

python - 使用带有特征矩阵的 scikit_learn 的奇怪卡方结果

具有弹出随机元素的能力的 Python 集

python - 如何使用python获取字符串中的信息片段

python - 如何迭代 Pandas 中的列值并根据同一行中多列的值创建新的观察?

dataframe - (Polars)如何通过在另一列中指定的索引从列表中获取元素

scala - 在Spark中获取已处理数据帧记录计数的最快方法

Python/OpenCV - 如何按字母顺序从文件夹中加载所有图像

python - 一对一字段在通过管理员插入时导致完整性错误

pandas - 在 Pandas 中获取索引标签作为字符串