在Python中处理日期的日期格式不正确+指南

时间:2014-10-07 18:47:13

标签: python datetime

我最近一直在从R转换到Python,并且一直在搞乱日期以及如何在Python中管理它们。但是,在尝试解析日期列表时遇到了以下问题。

from datetime import datetime
import matplotlib.pyplot as plt
dat = pd.read_csv("viz2.csv")

myd = ['8/15/14', '8/16/14', '8/17/14', '8/18/14', '8/19/14', '8/20/14', '8/21/14', '8/22/14']

xdates = [datetime.strptime(str(myd), '%m/%d/%y') for date in myd]

plt.plot(xdates, dat["Avg_Polarity"])

我得到的错误是当我尝试使用datetime模块中的strptime方法时。

xdates = [datetime.strptime(str(myd), '%m/%d/%y') for date in myd]

Traceback (most recent call last):

  File "<ipython-input-107-4a982c8d4090>", line 1, in <module>
    xdates = [datetime.strptime(str(myd), '%m/%d/%y') for date in myd]

  File "_strptime.pyc", line 325, in _strptime

ValueError: time data "['8/15/14', '8/16/14', '8/17/14', '8/18/14', '8/19/14', '8/20/14', '8/21/14', '8/22/14']" does not match format '%m/%d/%y'

一个。任何人都可以指出我的列表中的日期与我指定的格式不匹配。

湾在使用Python进行Pandas,Numpy,Scipy等数据分析时,您是否有处理日期的指导原则?

1 个答案:

答案 0 :(得分:1)

问题在于此语句,您将转换为字符串整个列表,然后尝试使用str(myd)将其转换为日期时间对象。

xdates = [datetime.strptime(str(myd), '%m/%d/%y') for date in myd]

将其更改为以下内容:

xdates = [datetime.strptime(date, '%m/%d/%y') for date in myd]

由于列表中的日期已经是字符串,因此您无需再次使用str转换它们。