python:机器学习掌握:时间数据格式不匹配

时间:2017-10-10 15:26:21

标签: python pandas csv

我正在关注this教程,并且我在开始时遇到了问题。我已经通过点击“导出”然后“CSV(,)”从here下载了数据集。

使用教程中提出的以下代码片段

# load and plot dataset
from pandas import read_csv
from pandas import datetime
from matplotlib import pyplot
# load dataset
def parser(x):
    return datetime.strptime('190'+x, '%Y-%m')
series = read_csv('shampoo-sales.csv', header=0, parse_dates=[0], index_col=0, squeeze=True, date_parser=parser)
# summarize first few rows
print(series.head())
# line plot
series.plot()
pyplot.show()

我收到以下错误:

time data '190Sales of shampoo over a three year period' does not match format '%Y-%m'

我该怎么办?

2 个答案:

答案 0 :(得分:1)

shampoo-sales.csv的末尾是(意外)行

  

Sales of shampoo over a three year period

您的parser()正在尝试将190置于其前面:

  

190Sales of shampoo over a three year period

然后按提供的模式'%Y-%m'进行转换,以便获得上述错误。

从<{1}}中删除该行(不要忘记保存),您的程序就会运行。

答案 1 :(得分:0)

如果无法查看CSV文件,我猜第一行和第一列是“三年内洗发水的销售额” 看看head()正在返回的内容。我打赌那里有一个标题行。