【发布时间】:2019-04-05 16:47:28
【问题描述】:
我收到一个值错误,提示我的数据与格式不匹配。不确定这是一个错误还是我在这里遗漏了一些东西。我指的是this documentation 的字符串格式。奇怪的是,如果我将“数据”数据框写入 csv 并读入,然后调用下面的函数,它将转换日期,所以我不确定为什么不写入 csv 就无法工作。
有什么想法吗?
data['Date'] = pd.to_datetime(data['Date'], format='%d-%b-%Y')
我遇到了两个错误
TypeError: Unrecognized value type: <class 'str'>
ValueError: time data '27‑Aug‑2018' does not match format '%d-%b-%Y' (match)
示例日期 -
2‑Jul‑2018
27‑Aug‑2018
28‑May‑2018
19‑Jun‑2017
5‑Mar‑2018
15‑Jan‑2018
11‑Nov‑2013
23‑Nov‑2015
23‑Jun‑2014
18‑Jun‑2018
30‑Apr‑2018
14‑May‑2018
16‑Apr‑2018
26‑Feb‑2018
19‑Mar‑2018
29‑Jun‑2015
是不是因为它们都不是两位数的日子?个位数天的字符串格式值是什么?看起来这可能是原因,但我不确定为什么它会在“27”上出错。
结束解决方案(它是 unicode 而不是字符串) -
data['Date'] = data['Date'].apply(unidecode.unidecode)
data['Date'] = data['Date'].apply(lambda x: x.replace("-", "/"))
data['Date'] = pd.to_datetime(data['Date'], format="%d/%b/%Y")
【问题讨论】:
-
data['Date']的 dtype 是什么? ->data['Date'].dtype -
也许你的语言环境不是英语?
-
@onno dtype('O')
-
@kull1n 嗯,应该是。不知道为什么不会。
-
@bbennett36 也许你可以先试试
data['Date'].astype(str)
标签: python pandas date datetime