我有一个熊猫数据框,其中包含如下所示的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')
但是第一个似乎向数据帧添加了更多数字,第二个返回了“有符号整数大于最大值”错误。
任何帮助表示赞赏。谢谢。
答案 0 :(得分:0)
也许这可以帮助您
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