【发布时间】:2018-05-16 01:48:14
【问题描述】:
我有一些不同格式的字符串日期,我使用to_datetime() 将它们转换为日期时间对象。但是,字符串列表也有一些我想转换为默认日期的垃圾值。
import pandas as pd
import datetime as dt
print(df)
dates
0 2018-02-12
1 2018-03-19
2 12-24-2018
3 garbage
我使用errors='coerece' 来避免抛出异常。它产生NaT,在我的情况下,我想将其转换为默认日期 2018-12-31。
df['dates'] = pd.to_datetime(df['dates'], errors='coerce')
下面的结果。
dates
0 2018-02-12
1 2018-03-19
2 2018-12-24
3 NaT
方法:
我正在检查给定的值是否是有效的日期时间。如果没有,请放置默认的日期时间对象。但由于某种原因,它会生成所有默认值。
df['dates'].apply(lambda x: dt.datetime(2018,12,31) if x is not dt.datetime else x)
电流输出
dates
0 2018-12-31
1 2018-12-31
2 2018-12-31
3 2018-12-31
预期输出:
dates
0 2018-02-12
1 2018-03-19
2 2018-12-24
3 2018-12-31
有没有办法给 to_datetime() 函数提供一个默认日期,这样它就不会产生 NaT?如果没有,我该如何设置默认日期?
【问题讨论】:
标签: python-3.x pandas datetime