python - 使用 pandas 将 Unix 13 位数字转换为日期时间/时间戳格式

标签 python python-3.x pandas datetime unix-timestamp

我有一个 pandas 数据框,其中包含如下所示的 13 位/毫秒数据,我正在尝试使用 .datetime()'pd.将其转换为清晰的日期和时间戳格式。 Timestamp(),这两个好像都需要10位/秒的数据。

  Date
0 1569968699999
1 1569968700000
2 1569968759999
3 1569968760000
4 1569968819999

我尝试使用 .astype(int) 将数据转换为类型 'int' 甚至 'float' .astype(float) 分别与 pandas,然后除以 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

关于python - 使用 pandas 将 Unix 13 位数字转换为日期时间/时间戳格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58193274/

相关文章:

python - 如何在 Excel 文档中搜索特定单词并使用搜索结果构建新列

python - 如何从 websocket 保存数据?

python - 如何在 Pandas 中解压一系列元组?

python-3.x - 在 Visual Studio Code for Mac OS 中使用 Homebrew python3 和 homebrew 包和 pip/pip3 包

mysql - peewee 使用 't1' 作为表而不是我的表

python-3.x - 从Python中的数字周数和该季度内的周数获取季度数?

Python runtime.txt 指定Python运行时版本

python - 如何使用 numpy 为图像的所有相对白色部分创建蒙版?

json - 将包含 json 数据的 pandas 数据框的列拆分为多个列

python - 如何创建平衡的 k 均值地理空间聚类?