我最近一直在从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等数据分析时,您是否有处理日期的指导原则?
答案 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
转换它们。