我正在尝试将pandas dataframe列从unix转换为datetime,但我要么得到一个不匹配的错误,要么新的日期都是1970-01-01。
以下是列表的尾部示例:
ds y
86 1625616000000 34149.989815
87 1625702400000 33932.254638
88 1625788800000 32933.578199
89 1625875200000 33971.297750
90 1625884385000 33868.766626
当我查看我的unix在datetime中的外观时:
mydatetime = datetime.fromtimestamp(1618185600000 // 1000, tz=tzutc())
print('mydatetime',mydatetime)
我得到:
mydatetime 2021-04-12 00:00:00+00:00
因此,当我使用转换函数时:
df2 = pd.to_datetime(df1['ds'].astype(str), format='%Y-%m-%d %H:%M:%S+%f:%Z')
我得到:
valueerror:时间数据“1618185600000”与格式“%y-%m-%d%h:%m:%s+%f:%z”不匹配(匹配)
但是,当我走这条懒洋洋的路时:
df2 = pd.to_datetime(df1['ds'], unit='ns')
结果是:
86 1970-01-01 00:27:05.616000
87 1970-01-01 00:27:05.702400
88 1970-01-01 00:27:05.788800
89 1970-01-01 00:27:05.875200
90 1970-01-01 00:27:05.886197
名称:ds,类型:datetime64[ns]
1条答案
按热度按时间g6baxovj1#
使用
pd.Timestamp
要转换为日期时间:或由@henryecker建议: