如何将DataFrame中object类型的datetime列转换为datetime类型?
Pandas将object类型日期列转换为datetime类型方法
使用pandas内置的pd.to_datetime()方法即可完成转换,适配绝大多数场景,不需要额外安装第三方依赖。
- 基础转换
对于格式规整、无脏数据的日期列,替换为自身代码中的DataFrame变量名和对应列名即可执行:
转换完成后执行import pandas as pd # 示例:将df中名为target_col的object类型列转为datetime类型 df['target_col'] = pd.to_datetime(df['target_col'])print(df.dtypes),对应列显示datetime64[ns]即为转换成功。 - 非标准格式转换
如果日期列是自定义非通用格式(比如31/12/2023 23:59这类日/月/年排序的结构),可以手动指定format参数匹配格式,转换速度比自动识别快数倍:
常用格式符说明:# 根据实际日期格式修改format字符串即可 df['target_col'] = pd.to_datetime(df['target_col'], format="%d/%m/%Y %H:%M")%Y对应4位年份、%m对应2位月份、%d对应2位日期、%H对应24小时制小时、%M对应分钟。 - 含脏数据的容错转换
如果列中混入了无法解析的非法值,添加errors="coerce"参数即可,无法解析的内容会被转成pandas内置的空时间值NaT,不会直接抛出异常中断代码运行:df['target_col'] = pd.to_datetime(df['target_col'], errors="coerce") - 多列批量转换
存在多个object类型日期列需要统一转换时,不需要逐列编写代码,可直接批量处理:# 将所有需要转换的日期列名放入列表 date_col_list = ['create_time', 'update_time', 'pay_time'] df[date_col_list] = df[date_col_list].apply(pd.to_datetime, errors="coerce")
参考截图:
内容的提问来源于stack exchange,提问作者Ghofran Gogy
相关产品推荐
相关产品推荐



