我有一个DataFrame,如下所示:
OrdNo LstInvDt
9 20070620
11 20070830
19 20070719
21 20070719
23 20070719
26 20070911
29 20070918
31 0070816
34 20070925
dtype
int64
的LstInvDt
。正如您所看到的,整数的格式为YYYYMMDD
,例如20070530
-30 th of May 2007。我尝试了一系列方法,最明显的是:pd.to_datetime(dt['Date'])
和pd.to_datetime(str(dt['Date']))
,函数不同参数有多种变化。
结果是日期被解释为时间。日期被设置为1970-01-01
-根据上面的示例1970-01-01 00:00:00.020070530
的结果
我还尝试了类似帖子中的各种.map()
函数。
如何正确转换?
2条答案
按热度按时间6l7fqoea1#
to_datetime
接受格式字符串:示例:
实际上,将类型转换为字符串,然后将整个序列转换为日期时间比对每个值调用apply要快得多:
liwlm1x92#
不需要强制转换为字符串,
pd.to_datetime()
可以解析整型、浮点型、字符串、日期时间、列表、元组、一维数组、系列、DataFrame/类似于dict
所以直接用特定的
format=
调用它应该可以。errors=
是一个有用的参数,通过将其设置为'coerce'
,可以获得“中断”日期的NaT值,而不会引发错误。