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

无法使用pandas.Series.replace方法将字符串'NaT'替换为None

行为差异原因

两种替换方式的效果不同是pandas replace方法的特殊参数逻辑导致的:

  • 调用replace('NaT', None)时,如果你把第二个参数设为None,pandas不会把None当作要替换的目标值,而是会判定为「你没有指定固定替换值」,自动回退到其他匹配逻辑,无法正常识别字符串格式的'NaT'做替换,所以运行后仍然有3个符合条件的值。
  • .loc条件赋值没有额外的隐式逻辑,就是直接定位所有值等于'NaT'的行,把对应位置的内容设置为None,所以可以正常完成替换,最后统计结果为0。

如果你想用replace方法完成替换,可以调整为以下写法:

import pandas as pd
# 写法1:用字典声明替换规则,避开None的特殊逻辑
d['cancellation_month'] = d['cancellation_month'].replace({'NaT': None})

# 写法2:显式指定替换为pandas的通用缺失值
d['cancellation_month'] = d['cancellation_month'].replace('NaT', pd.NA)

两种写法都可以正常匹配替换字符串类型的'NaT'。

内容的提问来源于stack exchange,提问作者amorim-ds

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:54:05