Alw*_*nny 7 python datetime pandas
从pandas.to_datetime的官方文档我们可以说,
unit : string, default ‘ns’
Run Code Online (Sandbox Code Playgroud)
arg的单位(D,s,ms,us,ns)表示单位,即整数或浮点数.这将基于起源.例如,unit ='ms'和origin ='unix'(默认值),这将计算unix epoch start的毫秒数.
所以,当我这样尝试时,
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]
Run Code Online (Sandbox Code Playgroud)
输出不会改变后者.每次显示日期时间值而不是第二个时间点的unix时期开始的毫秒数.这是为什么?我错过了什么吗?
cs9*_*s95 15
我认为您误解了争论的目的。的目的origin='unix'是将整数时间戳转换为 datetime,而不是其他方式。
pd.to_datetime(1.547559e+09, unit='s', origin='unix')
# Timestamp('2019-01-15 13:30:00')
Run Code Online (Sandbox Code Playgroud)
相反,您可以通过将其转换为整数(以获得纳秒)并除以10 9来获得时间戳。
pd.to_datetime(['2019-01-15 13:30:00']).astype(int) / 10**9
# Float64Index([1547559000.0], dtype='float64')
Run Code Online (Sandbox Code Playgroud)
您可以使用timestamp() 方法,该方法将 POSIX 时间戳返回为浮点数:
pd.Timestamp('2021-04-01').timestamp()
[Out]:
1617235200.0
pd.Timestamp('2021-04-01 00:02:35.234').timestamp()
[Out]:
1617235355.234
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3558 次 |
| 最近记录: |