如何将numpy.datetime64对象转换为datetime.datetime(或Timestamp)?
在以下代码中,我创建了datetime,timestamp和datetime64对象.
import datetime
import numpy as np
import pandas as pd
dt = datetime.datetime(2012, 5, 1)
# A strange way to extract a Timestamp object, there's surely a better way?
ts = pd.DatetimeIndex([dt])[0]
dt64 = np.datetime64(dt)
In [7]: dt
Out[7]: datetime.datetime(2012, 5, 1, 0, 0)
In [8]: ts
Out[8]: <Timestamp: 2012-05-01 00:00:00>
In [9]: dt64
Out[9]: numpy.datetime64('2012-05-01T01:00:00.000000+0100')
Run Code Online (Sandbox Code Playgroud)
注意:从时间戳中获取日期时间很容易:
In [10]: ts.to_datetime()
Out[10]: datetime.datetime(2012, 5, 1, 0, 0)
Run Code Online (Sandbox Code Playgroud)
但是我们如何从()中提取datetime或者?Timestampnumpy.datetime64dt64 …
我pandas.to_datetime用来解析数据中的日期.Pandas默认表示日期,datetime64[ns]即使日期仅为每日日期.我想知道是否有一种优雅/巧妙的方式将日期转换为datetime.date或者datetime64[D]当我将数据写入CSV时,日期不会附加00:00:00.我知道我可以逐个元素地手动转换类型:
[dt.to_datetime().date() for dt in df.dates]
Run Code Online (Sandbox Code Playgroud)
但这真的很慢,因为我有很多行,这有点挫败了使用的目的pandas.to_datetime.有没有办法立即转换dtype整个列?或者,是否pandas.to_datetime支持精度规范,以便在处理日常数据时可以摆脱时间部分?