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

替换DataFrame指定列区间缺失值无报错但未生效求助

问题原因与解决方案

你的代码没生效是因为data["Group"].loc[57:70]返回的是原DataFrame的副本而非视图,调用replace(inplace=True)只修改了这个临时副本,原data根本没被改动,所以缺失值数量不变。

正确写法

直接针对原DataFrame的切片进行赋值操作,确保修改作用在原数据上:

方法1:用replace赋值

data.loc[57:70, "Group"] = data.loc[57:70, "Group"].replace(np.nan, "Lan")
data.loc[89:102, "Group"] = data.loc[89:102, "Group"].replace(np.nan, "Act")

方法2:用fillna更直观(专门处理缺失值)

data.loc[57:70, "Group"] = data.loc[57:70, "Group"].fillna("Lan")
data.loc[89:102, "Group"] = data.loc[89:102, "Group"].fillna("Act")

补充说明

Pandas中切片返回视图还是副本没有绝对规律,取决于数据存储结构、索引类型等因素。避免依赖临时变量修改数据,直接通过原DataFrame的loc/iloc进行赋值,是最稳妥的做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 06:09:55