You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python在指定列中将特定范围数值替换为np.nan?

在Pandas中替换指定列内符合条件的数值为NaN

核心解决方案

可以通过布尔索引结合df.loc或mask方法精准定位指定列中符合条件的数值,将其替换为np.nan。以下是针对需求的实现代码:

import pandas as pd
import numpy as np

# 创建输入数据框
df = pd.DataFrame({
    'A': [2, 2, 5],
    'B': [3, 8, 3],
    'C': [5, 9, 6],
    'D': [7, 7, 7]
})

# 选定B、C列,将<=5或>=7的数值替换为np.nan
df.loc[:, ['B', 'C']] = df.loc[:, ['B', 'C']].mask(
    (df.loc[:, ['B', 'C']] <= 5) | (df.loc[:, ['B', 'C']] >= 7),
    np.nan
)

print(df)

代码解释

  • df.loc[:, ['B', 'C']]:定位数据框中所有行的B、C两列
  • .mask(条件, 替换值):mask方法会将满足条件的元素替换为指定值,这里的条件是(数值<=5) | (数值>=7)(|表示逻辑或)
  • 最终仅保留B、C列中大于5且小于7的数值,其余替换为np.nan

输入输出示例

输入数据框:

ABCD
2357
2897
5367

处理后的数据框:

ABCD
2NaN57
2NaNNaN7
5NaN67

内容的提问来源于stack exchange,提问作者Hal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:31:12