我有一个数据框,其中包含混合格式的日期(例如,包含纪元)
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/