如何在Pandas中提取datetime列的年月日并转为date类型?
解决方法
针对你已经将df['date_utc']转换为datetime类型的情况,有几种简单的方式可以提取出仅包含年月日的日期列:
方法1:提取Python date 对象类型
如果你想要的是Python原生的date类型列,可以直接使用.dt.date属性:
df['date'] = df['date_utc'].dt.date
执行后,df['date']的每个元素都是datetime.date对象,打印时会自动显示为YYYY-MM-DD的格式,完全符合你的预期结果。
方法2:保留pandas datetime64类型(仅日期部分)
如果你需要的是pandas的datetime类型(时间部分固定为午夜),可以用.dt.floor('D')或者.dt.normalize():
# 方法2.1:按日期截断时间部分 df['date'] = df['date_utc'].dt.floor('D') # 方法2.2:将时间统一设为午夜0点 df['date'] = df['date_utc'].dt.normalize()
这两种方式得到的结果是datetime64[ns]类型,时间部分固定为00:00:00,但显示时仅看日期部分的话,和你想要的格式完全一致。
测试后你会得到预期的输出:
0 2020-12-01 1 2020-11-11 2 2020-11-10 3 2020-11-08 4 2020-11-05 Name: date, dtype: object # 方法1的dtype为object(存储date对象) # 方法2的dtype为datetime64[ns]
内容的提问来源于stack exchange,提问作者mk2080
相关产品推荐
相关产品推荐

