无法将16位数字转换为人类可读日期

时间:2017-06-26 01:28:17

标签: python pandas jupyter-notebook

我已将大型csv文件读入Jupyter笔记本,并且它包含一个16位数字的列(例如1352160000000000)作为Epoch / Unix时间戳。

我在在线Epoch / Unix时间戳转换器网站上检查了这个号码,它返回我知道的时间(GMT:2012年11月6日星期二12:00:00 AM)。

然后我使用了以下代码(改编自此网站上此问题的其他答案):df['TIME'] = pd.to_datetime(df['TIME'], unit='u')将此数字转换为数据框中的人类可读形式,但我得到错误,或者我得到( 1970-01-16 15:36:00.000)。

任何人都可以向我指出我在哪里出错了,我错过了什么?

2 个答案:

答案 0 :(得分:6)

您需要使用'us'单位。

df['TIME'] = pd.to_datetime(df['TIME'], unit='us')

pd.to_datetime(1352160000000000,unit='us')
Out[24]: Timestamp('2012-11-06 00:00:00')

答案 1 :(得分:2)

unit 微秒,因此您应将'us'用作unit

pd.to_datetime(1352160000000000, unit='us')

例如:

>>> pd.to_datetime(1352160000000000, unit='us')
Timestamp('2012-11-06 00:00:00')