在使用pandas.to_datetime时,只保留日期部分。
在使用pandas.to_datetime时,只保留日期部分。
我使用 pandas.to_datetime
来解析数据中的日期。Pandas 默认使用 datetime64[ns]
表示日期,尽管这些日期只是每日的。
我想知道有没有一种优雅/聪明的方法来将这些日期转换为 datetime.date
或 datetime64[D]
,这样当我将数据写入 CSV 时,日期就不会被附加上 00:00:00
。我知道可以逐个元素手动转换类型:
[dt.to_datetime().date() for dt in df.dates]
但这样做太慢了,因为我有很多行,而且它有点违背使用 pandas.to_datetime
的目的。有没有一种同时转换整个列的方法?或者,pandas.to_datetime
是否支持精度规范,以便在处理每日数据时将时间部分去掉?
admin 更改状态以发布 2023年5月23日
自版本 0.15.0
起,可以通过使用 .dt
访问日期组件来轻松完成:
df['just_date'] = df['dates'].dt.date
以上返回了 datetime.date
,即 object
数据类型。如果想保持数据类型为 datetime64
,则可以使用 normalize
:
df['normalised_date'] = df['dates'].dt.normalize()
这将时间组件设置为午夜,即 00:00:00
,但显示仅为日期值。