我已经将一个SQL表读入pandas,现在我想将字符串中的日期转换为pandas的datetime类型。然而,问题是SQL的最大日期为“9999-12-31 23:59:59.9999”,而Pandas的最大日期为2262。
所以我可以做下面的事情,这是非常慢的:
def safe_convert(date):
try:
return pd.to_datetime(date)
except OutOfBoundsDatetime:
return pd.Timestamp('2262-04-11')
df['start_date'] = df['start_date'].apply(safe_convert)
字符串
一个更快的替代方案如下,但会导致pd.NaTs:
df['start_date'] = pd.to_datetime(df['start_date'], errors='coerce')
型
难道没有一种方法可以实现第一个,只是以一种性能的方式?
1条答案
按热度按时间h79rfbju1#
那么使用第二种选择并填充NaTs呢?
字符串
或者,如果您最初有NaTs/NaN,并且不想填充它们:
型