熊猫datetime到unix时间戳记秒

永远阳光明媚:

pandas.to_datetime的官方文档中,我们可以说,

unit : string, default ‘ns’

arg的单位(D,s,ms,us,ns)表示单位,它是整数或浮点数。这将基于原点。例如,对于unit ='ms'和origin ='unix'(默认值),这将计算到unix纪元开始的毫秒数。

所以当我这样尝试时

import pandas as pd
df = pd.DataFrame({'time': [pd.to_datetime('2019-01-15 13:25:43')]})
df_unix_sec = pd.to_datetime(df['time'],unit='ms',origin='unix')
print(df)
print(df_unix_sec)

                 time
0   2019-01-15 13:25:43
0   2019-01-15 13:25:43
Name: time, dtype: datetime64[ns]

下一个输出不变。每次显示日期时间值,而不是第二个unix纪元开始的毫秒数。这是为什么?我想念什么吗?

cs95:

我认为您误解了争论的目的。的目的origin='unix'是将整数时间戳转换 datetime,而不是其他方式。

pd.to_datetime(1.547559e+09, unit='s', origin='unix') 
# Timestamp('2019-01-15 13:30:00')

相反,您可以通过将其转换为整数(以获取纳秒数)并除以10 9来获得时间戳

pd.to_datetime(['2019-01-15 13:30:00']).astype(int) / 10**9
# Float64Index([1547559000.0], dtype='float64')

更新资料

熊猫文档建议使用以下方法:

dates = pd.to_datetime(['2019-01-15 13:30:00'])
(dates - pd.Timestamp("1970-01-01")) // pd.Timedelta('1s')  
# Int64Index([1547559000], dtype='int64')

速度不如上面显示的方法快,但这并没有假设熊猫如何在内部存储其日期时间对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章