You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas无法正确拆分日期时间列?求解决方案

问题分析与修复方案

核心问题

  • 类型丢失导致时间提取失败:你将转换后的datetime类型直接转为date对象(data['date'].dt.date),此时该列已不再是pandas的datetime64类型,而是Python原生date类型,无法通过dt.time提取时间信息,最终生成NaT。
  • 潜在格式不匹配风险:若你的原始日期字符串实际是日/月/年格式(比如12/10/2022是10月12日而非12月10日),指定的%m/%d/%Y格式会导致转换失败,errors='coerce'会将错误值转为NaT。

修复后的代码

import pandas as pd

# 读取CSV数据
data = pd.read_csv('file_directory.csv')

# 转换为datetime类型:注意格式匹配,若为日/月/年则改为'%d/%m/%Y %H:%M:%S.%f %z'
data['datetime'] = pd.to_datetime(data['date'], errors='coerce', utc=True, format='%m/%d/%Y %H:%M:%S.%f %z')

# 从完整datetime中提取日期和时间
data['date'] = data['datetime'].dt.date
data['time'] = data['datetime'].dt.time

# 可选:移除临时datetime列
data.drop('datetime', axis=1, inplace=True)

# 查看转换结果
print(data[['date', 'time']].head())

额外提示

  • 若仍出现NaT,打印原始date列的前10行(print(data['date'].head(10))),检查是否存在格式不一致的异常值。
  • 避免直接覆盖原date列的datetime类型数据,保留完整时间戳是提取日期、时间的前提。

内容的提问来源于stack exchange,提问作者Megan van Blerk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 16:07:25