python - Pandas 用 NaT 替换 0 值
问题描述
我有一个日期框,其中包含一个名为“日期”的列,其中包含格式为:年月日的日期。某些月份和日期的值为零,这意味着这些日期无效,因此我需要用 NaT(不是时间)替换这些值的数据。我尝试了以下方法:
df["date"] = df["date"].replace(0, np.nan),也试过:df["date"] = df["date"].replace({'0':np.nan , 0:np.nan}) 也: df["date"] = df["date"].replace(['0', 0], np.nan)
但以上都不起作用。仍然有类似的数据:1970 0 0 1970 1 0 等...
解决方案
pd.to_datetime
与选项一起使用errors='coerce'
。
样品系列s
:
Out[31]:
0 1970 0 0
1 1970 1 1
2 1970 1 0
dtype: object
s_out = pd.to_datetime(s, errors='coerce')
In [33]: s_out
Out[33]:
0 NaT
1 1970-01-01
2 NaT
dtype: datetime64[ns]
推荐阅读
- java - 我总是在 Spring 控制器的 **transferReceivedData** 对象中得到 null
- ruby-on-rails - Rails::ActiveRecord 在深拷贝副本中保留 auto_increment id
- sql - 查找组中的前 3 个值时,“查询不包括指定的表达式作为聚合函数的一部分”
- bash - 空白扩展测试`[[]]`不起作用
- jmeter - JMeter 插件 - 什么是“jpgc - 标准集”插件
- c# - c#读取串口时在控制台上看到希伯来语
- rust - Julia 和 Rust 之间的交互
- c++ - C++ InsertAtFront 中的链表
- at-command - 为什么有些 AT 命令很慢?
- geotools - 使用 Geotools 将 FeatureCollection 转换为 LineString