在使用pandas.to_datetime时,只保留日期部分。

14 浏览
0 Comments

在使用pandas.to_datetime时,只保留日期部分。

我使用 pandas.to_datetime 来解析数据中的日期。Pandas 默认使用 datetime64[ns] 表示日期,尽管这些日期只是每日的。

我想知道有没有一种优雅/聪明的方法来将这些日期转换为 datetime.datedatetime64[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
0 Comments

简单解决方案:

df['date_only'] = df['date_time_column'].dt.date

0
0 Comments

自版本 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,但显示仅为日期值。

0