我收到了一些格式奇怪的日期,但我没办法把它们读成日期时间Pandas 的格式.
例如:736698.0
,它应该是'2017-01-04T00:00:00.000000000'
.所以,原始的格式似乎是自公元前1/1/1以来的天数(作为零年的第一天,但没有这样的一年,所以它是一年).
我试着使用pandas.to_datetime(736698.0, unit='D', origin=datetime.datetime(1/1/0))
和其他组合,但我什么都没有得到.
我收到了一些格式奇怪的日期,但我没办法把它们读成日期时间Pandas 的格式.
例如:736698.0
,它应该是'2017-01-04T00:00:00.000000000'
.所以,原始的格式似乎是自公元前1/1/1以来的天数(作为零年的第一天,但没有这样的一年,所以它是一年).
我试着使用pandas.to_datetime(736698.0, unit='D', origin=datetime.datetime(1/1/0))
和其他组合,但我什么都没有得到.
使用numpy
可以做到这一点,因为它支持'BC' years:
import numpy as np
>>> np.datetime64('000') + np.timedelta64(736698, 'D')
numpy.datetime64('2017-01-04')
示例:
import pandas as pd
df = pd.DataFrame({'Date': [736698.0]})
df['Date2'] = pd.to_timedelta(df['Date'], unit='D').to_numpy() + np.datetime64('000')
输出:
>>> df
Date Date2
0 736698.0 2017-01-04