我有一个包含13位/毫秒数据的大熊猫数据框,如下所示,我正尝试使用.datetime()
或'pd.Timestamp()
将其转换为清晰的日期和时间戳格式,两者似乎都需要10位/秒数据。
Date
0 1569968699999
1 1569968700000
2 1569968759999
3 1569968760000
4 1569968819999
[我尝试分别使用'int'
或'float'
和熊猫将数据转换为.astype(int)
或什至.astype(float)
类型,然后除以1000以得到10位/秒的数据,这显然会产生一个'无法将系列转换为'float'类型错误。
我理解为什么'除以1000'选项仅在定义变量时起作用(如在其他多个堆栈溢出帖子/问题中所提到的。
我也尝试过使用:
df['Date'] = pd.to_datetime(df['Date'], unit='s')
或
df['Date'] = pd.to_datetime(df['Date'], unit='ms')
但是第一个似乎在数据帧中添加了更多的数字,第二个返回了“有符号整数大于最大值”错误。
任何帮助表示赞赏。谢谢。
也许这可以帮助您:
import pandas as pd
import numpy as np
import datetime
df=pd.DataFrame()
i=[1569968699999,1569968700000,1569968759999,1569968760000,1569968819999]
df['date']=pd.Series(i)
df['date']=df['date'].apply(lambda d: datetime.datetime.fromtimestamp(int(d)/1000).strftime('%Y-%m-%d %H:%M:%S'))
输出:
date
0 2019-10-02 01:24:59
1 2019-10-02 01:25:00
2 2019-10-02 01:25:59
3 2019-10-02 01:26:00
4 2019-10-02 01:26:59