如何使用Pandas将datetime格式转换为仅保留日期的格式
Pandas datetime类型提取日期的实现方法
首先提前提条件:操作前请确保目标列已经转换为Pandas的datetime64类型,如果还没转换可以先执行以下代码:
df['目标列名'] = pd.to_datetime(df['目标列名'])
需求1:转换为2021-11-15格式
分两种场景选择实现方式:
- 如果你后续需要对日期做运算、对比,建议保留日期类型,使用
.dt.date属性:
代码:df['仅日期列'] = df['目标列名'].dt.date
该方法返回Python原生datetime.date对象,打印展示就是2021-11-15格式,无时间部分。 - 如果你需要输出为文本格式,使用
.dt.strftime方法指定格式:
代码:df['日期字符串列'] = df['目标列名'].dt.strftime('%Y-%m-%d')
需求2:转换为(2021,11,15)元组格式
推荐用向量化操作实现,比apply效率更高:
df['日期元组列'] = pd.MultiIndex.from_arrays([ df['目标列名'].dt.year, df['目标列名'].dt.month, df['目标列名'].dt.day ]).tuples
完整测试示例
import pandas as pd # 构造测试数据 df = pd.DataFrame({'datetime_col': ['2021-11-15 00:00:00', '2023-05-20 14:30:00']}) # 转换为datetime类型 df['datetime_col'] = pd.to_datetime(df['datetime_col']) # 生成两种格式的结果 df['date_ymd'] = df['datetime_col'].dt.date df['date_tuple'] = pd.MultiIndex.from_arrays([df['datetime_col'].dt.year, df['datetime_col'].dt.month, df['datetime_col'].dt.day]).tuples print(df)
内容的提问来源于stack exchange,提问作者Dhu
相关产品推荐
相关产品推荐

