我有一个 pandas 数据框,其中包含如下所示的 13 位/毫秒数据,我正在尝试使用 .datetime()
或 'pd.将其转换为清晰的日期和时间戳格式。 Timestamp()
,这两个好像都需要10位/秒的数据。
Date
0 1569968699999
1 1569968700000
2 1569968759999
3 1569968760000
4 1569968819999
我尝试使用 .astype(int)
或 将数据转换为类型
分别与 pandas,然后除以 1000 得到 10 位/秒的数据,这显然会产生“无法将系列转换为类型‘float’”错误。 'int'
甚至 'float'
.astype(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
关于python - 使用 pandas 将 Unix 13 位数字转换为日期时间/时间戳格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58193274/