【发布时间】:2019-10-11 14:19:40
【问题描述】:
我想将 df['Date'] 列转换为数字时间格式: 当前格式,即 2019 年 10 月 9 日 --> 10-09-2019 这是我的代码,但在打印之前我没有收到错误。感谢您的支持!
我做了一些改变, 我想将当前时间格式转换为数字时间格式,即:Oct 9, 2019 --> 10-09-2019 in a table of a column
from time import strptime
strptime('Feb','%b').tm_mon
Date_list = df['Date'].tolist()
Date_num = []
for i in Date_list:
num_i=strptime('[i[0:3]]', '%b').tm_mon
Date_num.append(num_i)
df['Date'] = Date_num
print(df['Date'])
我收到如下错误信息:
密钥错误
ValueError: 时间数据 '[i[0:3]]' 与格式 '%b' 不匹配
Date
Oct 09, 2019
Oct 08, 2019
Oct 07, 2019
Oct 04, 2019
Oct 03, 2019
【问题讨论】:
-
欢迎来到 StackOverflow。请按照您创建此帐户时的建议阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确说明问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中并重现您指定的问题。您发布的代码崩溃,因为
df未定义。 -
错误告诉您,您提供的密钥
i[0:3]不在字典中。由于您未能提供数据框或任何程序跟踪,我们无法为您提供太多帮助。 -
使用
to_datetime,不要转换成列表也不要迭代!我建议将其保留为日期时间对象,而不是转换回字符串。请注意,您需要指定format参数。使用this page 作为参考来确定format字符串在您的情况下应该是什么。作为提示,请在格式字符串中保留空格和逗号,使其与日期字符串中的显示完全相同。 -
@Dan 说了什么。但是您似乎也混淆了将实际的文字字符串“[i[0:3]]”传递给strptime,而不是
'[i[0:3]]'的值。