我有一个数据框,其中包含混合格式的日期(例如,包含纪元)

df = pandas.DataFrame(data=[1562054799651,'2019-07-02','2007-10-01 00:00:00'],columns=['date'])


并且我想转换为日期时间,但是如果我输入

pandas.to_datetime(df['date'], errors="coerce")


我懂了

0   1970-01-01 00:26:02.054799651 <- THIS IS WRONG SINCE IT SHOULD BE 2019-07-02 08:06:39.651
1   2019-07-02 00:00:00.000000000
2   2007-10-01 00:00:00.000000000
Name: date, dtype: datetime64[ns]


问题在于,第一个日期是“ ms”中的一个纪元。

如果我输入

pandas.to_datetime(df['date'], errors="coerce", unit='ms')


我得到了

0   2019-07-02 08:06:39.651
1                       NaT
2                       NaT
Name: date, dtype: datetime64[ns]


是否有解决方案以获得所需的输出

0   2019-07-02
1   2019-07-02
2   2007-10-01


名称:日期,dtype:datetime64 [ns]

最佳答案

您可以使用日期时间包

import datetime
s = 1236472051807 / 1000.0
datetime.datetime.fromtimestamp(s).strftime('%Y-%m-%d %H:%M:%S.%f')


我认为这可能对您有帮助

关于python - 在pandas datetime中转换混合日期类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56849123/

10-10 18:19
查看更多