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

如何使用Pandas将指定列特定行范围的数据替换为NaN

Pandas指定列指定行范围替换为NaN实现方案

原代码问题说明

  • iris['petal_length'].between(10,17)的作用是判断petal_length列的数值是否处于1017的区间,完全不符合选择第1017行的需求
  • replace('NaN')写法错误:字符串格式的'NaN'不会被Pandas识别为空值,正确的空值对象为np.nan

完整正确实现代码

首先导入依赖库、加载数据集:

import pandas as pd
import numpy as np

url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data'
# 原数据集无表头,手动指定对应列名
iris = pd.read_csv(url, names=['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class'])

替换核心代码(两种写法二选一即可)

  1. 基于iloc的位置索引写法
# iloc行范围为左闭右开,第10~17行对应索引区间10:18,petal_length列的位置索引为2
iris.iloc[10:18, 2] = np.nan
  1. 基于loc的标签写法(可读性更高)
# 默认整数索引场景下,loc的行范围为左闭右闭,直接写10:17即可匹配第10~17行
iris.loc[10:17, 'petal_length'] = np.nan

结果验证

执行以下代码即可查看替换后的效果:

iris.iloc[10:18]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:04