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

如何将Pandas DataFrame中的NaT替换为0天?

解决Pandas DataFrame中NaT替换为0天的问题

嗨Ed!当然有可行的方法来处理这个需求,而且操作起来很简单,我给你两种常用的方案:

方法1:使用fillna()直接填充

这是最直观的方式,针对timedelta类型的列,直接用pd.Timedelta(0)(也就是0天的时间差)来填充NaT值:

import pandas as pd

# 假设你的DataFrame是df,目标列是time_delta_col
df['time_delta_col'] = df['time_delta_col'].fillna(pd.Timedelta(days=0))
# 或者更简洁的写法
df['time_delta_col'] = df['time_delta_col'].fillna(pd.Timedelta(0))

方法2:使用replace()替换指定值

如果你需要精准替换NaT这个特定值,可以用replace()方法:

df['time_delta_col'] = df['time_delta_col'].replace(pd.NaT, pd.Timedelta(0))

注意事项

  • 要确保你的目标列是**timedelta64[ns]**类型,如果是datetime64类型的列,替换成“0天”其实逻辑不太通顺(datetime是具体时间点,不是时间差),如果是这种场景,你可能需要明确是替换成某个基准时间(比如当前时间)加上0天,那可以写成pd.Timestamp.now() + pd.Timedelta(0),不过这应该不是你的需求~
  • 执行完替换后,你可以用df['time_delta_col'].dtype检查列的类型是否保持正确,避免出现类型转换问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:08:49