【发布时间】:2019-05-01 10:09:27
【问题描述】:
我有一个数据集,其中包含这样的列日期:
cod date value
0 1O8 2015-01-01 00:00:00 2.1
1 1O8 2015-01-01 01:00:00 2.3
2 1O8 2015-01-01 02:00:00 3.5
3 1O8 2015-01-01 03:00:00 4.5
4 1O8 2015-01-01 04:00:00 4.4
5 1O8 2015-01-01 05:00:00 3.2
6 1O9 2015-01-01 00:00:00 1.4
7 1O9 2015-01-01 01:00:00 8.6
8 1O9 2015-01-01 02:00:00 3.3
10 1O9 2015-01-01 03:00:00 1.5
11 1O9 2015-01-01 04:00:00 2.4
12 1O9 2015-01-01 05:00:00 7.2
日期列的dtypes 是一个对象,用于在我需要将日期列类型更改为数据时间之后应用一些功能。我尝试了不同的解决方案,例如:
pd.to_datetime(df['date'], errors='raise', format ='%Y-%m-%d HH:mm:ss')
pd.to_datetime(df['date'], errors='coerce', format ='%Y-%m-%d HH:mm:ss')
df['date'].apply(pd.to_datetime, format ='%Y-%m-%d HH:mm:ss')
但错误只是一样的:
TypeError: Unrecognized value type: <class 'str'>
ValueError: Unknown string format
直接的事情是,如果我将 te 函数应用于数据集样本,该函数会正确响应,但如果我将其应用于所有数据集,则会退出错误。在数据中没有缺失值,并且所有值的 dtype 都相同。
我该如何解决这个错误?
【问题讨论】:
-
您是否尝试过不指定任何格式,即
pd.to_datetime(df.date)? -
是的,这是我尝试的第一件事
-
因为它通常会推断格式。正如@jpp 所提到的,您在字符串格式的开头缺少
%。
标签: python python-3.x pandas string datetime