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

使用pandas读取Excel分离日期时间列时解析错误的解决方法

解决Pandas读取Excel日期时间列解析错误的问题

我有一个包含独立date列和time列的Excel文件,使用代码df = pd.read_excel(r'df.xlsx', parse_dates=[['date', 'time']])读取时遇到问题:当所有行日期相同时代码运行正常,但日期发生变化时,解析结果出错——比如2021-04-04的行中,time列被解析成带1900-01-01的错误格式。需要将DataFrame修正为包含正确分离日期和时间列的格式,目标示例如下:

2021-04-03  23:52:11,A
2021-04-03  23:56:05,A
2021-04-03  23:59:27,A
2021-04-04  00:03:33,B
2021-04-04  00:04:33,B
2021-04-04  00:06:43,B
2021-04-04  00:10:17,B

解决方案

步骤1:先读取Excel,不提前合并解析日期时间

避免Pandas自动合并时的格式冲突,先原样读取数据:

import pandas as pd

df = pd.read_excel('df.xlsx')

步骤2:清理time列,提取正确时间部分

针对time列被解析为带1900-01-01的Timestamp类型的情况,提取纯时间部分:

# 处理time列:如果是Timestamp类型则提取时间,否则保留原内容
df['time'] = df['time'].apply(lambda x: x.time() if isinstance(x, pd.Timestamp) else x)

步骤3:确保date列格式正确

将date列转换为标准日期格式,避免格式混乱:

df['date'] = pd.to_datetime(df['date']).dt.date

可选:合并后再拆分(确保日期时间对应准确)

如果担心日期和时间不匹配,可以先合并成完整datetime再拆分,确保对应关系:

# 合并日期和时间为完整datetime
df['full_datetime'] = pd.to_datetime(df['date'].astype(str) + ' ' + df['time'].astype(str))
# 拆分回独立的日期和时间列
df['date'] = df['full_datetime'].dt.date
df['time'] = df['full_datetime'].dt.time
# 删除临时列
df.drop('full_datetime', axis=1, inplace=True)

执行以上步骤后,就能得到日期和时间列完全正确分离的DataFrame,符合目标示例的格式。

内容的提问来源于stack exchange,提问作者Mohammad.sh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:52:35