LYQ_Python

三分钟告诉你 1575119387982 是什么?

2019-12-11  本文已影响0人  呆鸟的简书

Pandas 百问百答第 006 篇。

呆鸟云:“昨天有朋友给了我一串数字,如下所示:

1575119387982
1575119687867
1575212636675

说这个是数据库里字符串格式的时间戳,在网上找了两个小时没找到转为正常日期解决方案,呆鸟一看就乐了,这不就是刚发的《Pandas 时间序列》系列文章里写过的纪元型时间戳吗?呆鸟自信满满地回复,一分钟就搞定给你。”

于是,呆鸟照抄原文代码:

然而,(O_o)??,虾米,居然报错?!!!

提示不能用 ‘s’ 转换?这时一分钟已经过去了。。。-_-||,不能用秒转换,这是咋回事?你不换我换!

unit='s' 换成 unit='ns',也就是把时间单位从秒换成纳秒看下。这次可以了。

呆鸟兴冲冲发给哥们,你看,简单吧,一分半就搞定了。哥们看了以后有点懵b,说真快啊,呆鸟开始自卖自夸,你看,我的文章你要好好看,哪里还用两个小时,一分钟就够了。结果,哥们给我回一句,问题是 1970 年是咋回事?那会我还没生呢啊,我们公司也没开呢,怎么会有这个时间的数据?

(O_o)?? 这次轮到呆鸟懵b了,这也不对?再来。。。把纳秒换成毫秒试试。

这次再一看,哦,原来是 2019 年 11 月 30 日 的,这次靠谱了。嘎嘎~

哥们又说,你这才一个啊,我这还有很多呢。于是,呆鸟又给弄了个 list,这样就可以解析很多数据了。

哥们又说,我这个是 Pandas 的 DataFrame 啊,呆鸟。。。,不管了,自己研究去,哼哼。

不过,对于各位读者大大,呆鸟自然会全盘奉上。

代码如下:

import pandas as pd

epoch = [1575119387982,1575119687867,1575212636675]
data = pd.DataFrame(epoch,columns=['Epoch'])

data['date'] = pd.to_datetime(data.Epoch, unit='ms')
data

全下来一共三分钟,其实一分钟也可以啊,好啦,以后,各位再看到这样的长数字纪元型时间戳就别懵了啊。另外,一定要好好学习时间序列啊,这可是数据分析的根本。

本篇分享代码不多,诸君一定要手撕下代码哦。

Pandas 百问百答系列

上一篇 下一篇

猜你喜欢

热点阅读