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

Python Pandas按指定日期范围填充DataFrame中X列NaN值失败如何解决

问题根因

你使用了链式索引写法,该场景下pandas会返回原数据的临时副本而非视图,fillna的inplace=True参数仅修改了这个临时副本,不会作用到原DataFrame,因此出现无报错但数据未更新的情况。

最优实现方案

使用loc索引直接操作原DataFrame,避免副本问题,同时简化逻辑:

import datetime
# 提前存储过滤条件,避免重复计算
date_filter = df['Date'] < datetime.date(2017, 1, 1)
# 直接对符合条件的X列空缺值赋值
df.loc[date_filter, 'X'] = df.loc[date_filter, 'X'].fillna(1)

该实现的优势:

  • 完全规避链式索引的副本问题,修改直接生效到原数据
  • 过滤条件单独抽离,代码可读性更高
  • 无冗余的重复数据切片操作,执行效率更优

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 10:36:04