pandas 日期时间到 unixtime
pandas datetime to unixtime
我想将日期时间 (2014-12-23 00:00:00) 更改为 unixtime。我尝试使用 Datetime 函数,但没有用。我得到了数组中的日期时间戳。
Zeit =np.array(Jahresgang1.ix[ :,'Zeitstempel'])
t = pd.to_datetime(Zeit, unit='s')
unixtime = pd.DataFrame(t)
print unixtime
非常感谢
我想你可以减去日期 1970-1-1
来创建一个 timedelta
然后访问属性 total_seconds
:
In [130]:
s = pd.Series(pd.datetime(2012,1,1))
s
Out[130]:
0 2012-01-01
dtype: datetime64[ns]
In [158]:
(s - dt.datetime(1970,1,1)).dt.total_seconds()
Out[158]:
0 1325376000
dtype: float64
强调一下EdChum的第一条评论,大家可以直接获取Unix时间like
import pandas as pd
s = pd.to_datetime(["2014-12-23 00:00:00"])
unix = s.astype("int64")
print(unix)
# Int64Index([1419292800000000000], dtype='int64')
或 pd.Timestamp:
print(pd.to_datetime("2014-12-23 00:00:00").value)
# 1419292800000000000
备注
- 输出精度为纳秒 - 如果你想要另一个精度,请适当除以,例如10⁹ 得到秒,10⁶ 得到毫秒等等
- 这假定输入 date/time 为 UTC,除非指定了时区/UTC 偏移量
我想将日期时间 (2014-12-23 00:00:00) 更改为 unixtime。我尝试使用 Datetime 函数,但没有用。我得到了数组中的日期时间戳。
Zeit =np.array(Jahresgang1.ix[ :,'Zeitstempel'])
t = pd.to_datetime(Zeit, unit='s')
unixtime = pd.DataFrame(t)
print unixtime
非常感谢
我想你可以减去日期 1970-1-1
来创建一个 timedelta
然后访问属性 total_seconds
:
In [130]:
s = pd.Series(pd.datetime(2012,1,1))
s
Out[130]:
0 2012-01-01
dtype: datetime64[ns]
In [158]:
(s - dt.datetime(1970,1,1)).dt.total_seconds()
Out[158]:
0 1325376000
dtype: float64
强调一下EdChum的第一条评论,大家可以直接获取Unix时间like
import pandas as pd
s = pd.to_datetime(["2014-12-23 00:00:00"])
unix = s.astype("int64")
print(unix)
# Int64Index([1419292800000000000], dtype='int64')
或 pd.Timestamp:
print(pd.to_datetime("2014-12-23 00:00:00").value)
# 1419292800000000000
备注
- 输出精度为纳秒 - 如果你想要另一个精度,请适当除以,例如10⁹ 得到秒,10⁶ 得到毫秒等等
- 这假定输入 date/time 为 UTC,除非指定了时区/UTC 偏移量