正确解析 ddmmyyyy:HH:MM:SS.xxx 格式的 str 日期时间

correct parsing for a str date time in ddmmyyyy:HH:MM:SS.xxx format

我在 dask 数据框中将以下日期时间值保存为字符串日期:

ddf = dd.DataFrame({'date': ['15JAN1955:13:15:27.369', NaN,'25DEC1990:23:18:17.200', '06MAY1962:02:55:27.360', NaN, '20SEP1975:12:02:26.357']}

我使用了 ddf['date'].apply(lambda x: datetime.strptime(x,"%d%b%Y:%H:%M:%S.%f"), meta=datetime),但出现 TypeError: strptime() argument 1 must be a str, not float 错误。

我遵循从书中解析日期的方式:Data Science with python and dask。

.%f 是否期待浮动?或者它可能与 NaN 值有关?

您可以使用%f that parses any decimal fraction of seconds with up to 6 digits

另外 20SEPT1975 应该是 20SEP1975(一个月内没有 T

import pandas as pd
import numpy as np

df = pd.DataFrame({'date': ['15JAN1955:13:15:27.369', np.nan,
                            '25DEC1990:23:18:17.200', np.nan,
                            '06MAY1962:02:55:27.360', '20SEP1975:12:02:26.357']})

df['date'] = pd.to_datetime(df['date'], format="%d%b%Y:%H:%M:%S.%f")
print(df)
                     date
0 1955-01-15 13:15:27.369
1                     NaT
2 1990-12-25 23:18:17.200
3                     NaT
4 1962-05-06 02:55:27.360
5 1975-09-20 12:02:26.357