Pandas将0值替换为NaT

3
我有一个数据框,其中有一列名为 "date",包含以年、月、日格式表示的日期。 有些月份和日期的值为零,表示这些日期无效,因此我需要替换这些值的数据为 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 等等...
1个回答

1
使用 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]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接