我已将大型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)。
任何人都可以向我指出我在哪里出错了,我错过了什么?
答案 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')