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

Pandas将Object类型转为Datetime触发ValueError,求解决方法

我尝试将Object类型转换为Datetime类型

我的代码

import pandas as pd

# Sample data
data = {'Channel_Started': ['2013-05-18T04:46:00Z', '2018-01-16T15:55:22Z', '2016-12-12T05:00:55Z', '2020-04-29T17:18:25.574824Z', '2023-11-24T21:56:18.571502Z', '2020-06-13T05:20:37.182391Z', '2015-08-22T13:22:51Z', '2016-11-16T14:52:31Z', '2020-05-09T20:35:27.233665Z', '2022-03-16T22:09:57.246468Z', '2023-02-11T05:55:01.369504Z', '2023-03-10T12:18:40.189285Z', '2005-12-16T09:01:28Z', '2013-09-05T01:15:06Z', '2017-07-13T09:30:23Z', '2020-08-05T16:09:28.304314Z']}

# Create DataFrame
df = pd.DataFrame(data)

# Convert to datetime
df['Channel_Started'] = pd.to_datetime(df['Channel_Started'])

# Extract date
df['Channel_Started'] = df['Channel_Started'].dt.date

print(df)

错误输出

ValueError: 时间数据"2020-04-29T17:18:25.574824Z"与格式"%Y-%m-%dT%H:%M:%S%z"不匹配,位置为3。你可以尝试:

- 如果字符串格式一致,传入`format`参数;
- 如果所有字符串均为ISO8601格式但不完全统一,传入`format='ISO8601'`;
- 传入`format='mixed'`,将为每个元素单独推断格式,你可以搭配`dayfirst`参数使用。

问题分析

数据中的时间字符串存在两种ISO8601变体:一种不带毫秒(如2013-05-18T04:46:00Z),另一种带微秒级毫秒(如2020-04-29T17:18:25.574824Z),默认的pd.to_datetime()无法同时兼容两种格式,因此触发格式不匹配的报错。

解决方案

按照错误提示,指定format='ISO8601'参数即可兼容所有ISO8601标准的时间字符串,修改后的代码如下:

import pandas as pd

# Sample data
data = {'Channel_Started': ['2013-05-18T04:46:00Z', '2018-01-16T15:55:22Z', '2016-12-12T05:00:55Z', '2020-04-29T17:18:25.574824Z', '2023-11-24T21:56:18.571502Z', '2020-06-13T05:20:37.182391Z', '2015-08-22T13:22:51Z', '2016-11-16T14:52:31Z', '2020-05-09T20:35:27.233665Z', '2022-03-16T22:09:57.246468Z', '2023-02-11T05:55:01.369504Z', '2023-03-10T12:18:40.189285Z', '2005-12-16T09:01:28Z', '2013-09-05T01:15:06Z', '2017-07-13T09:30:23Z', '2020-08-05T16:09:28.304314Z']}

# Create DataFrame
df = pd.DataFrame(data)

# Convert to datetime with ISO8601 format
df['Channel_Started'] = pd.to_datetime(df['Channel_Started'], format='ISO8601')

# Extract date
df['Channel_Started'] = df['Channel_Started'].dt.date

print(df)

预期输出

Channel_Started
0       2013-05-18
1       2018-01-16
2       2016-12-12
3       2020-04-29
4       2023-11-24
5       2020-06-13
6       2015-08-22
7       2016-11-16
8       2020-05-09
9       2022-03-16
10      2023-02-11
11      2023-03-10
12      2005-12-16
13      2013-09-05
14      2017-07-13
15      2020-08-05

内容的提问来源于stack exchange,提问作者Asingh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 23:32:13