2017-04-14 45 views
1

我正在尝试使用熊猫来创建时间序列索引。目前这是我正在运行的代码:如何正确使用使用熊猫的时间序列(python)

date_string = df3["Date"] 
date_times = pd.to_datetime(date_string, yearfirst=True, format='%Y%m%d%H%M') 
df3_i = df3.set_index(date_times) 

但是,我得到了不断的错误。谁能解释一下? 错误:

ValueError: time data '2017-03-08 13:53' does not match format '%Y%m%d%H:%M' (match) 

回答

0

这是因为该格式是'%Y-%m-%d %H:%M'

有一些是为了表示日期和时间的数字组成特殊字符的组合。一个很好的参考可以发现here

您有一个时间字符串'2017-03-08 13:53'由您证明错误消息。从链接,你会发现:

  • 4位数的年份是'%Y'
  • 2位数的月份'%m'
  • 2位数日期是'%d'
  • 2位数小时是'%H'
  • 2位分钟是'%M'

所以,你仍然需要代表另一个字符串如破折号,空间和结肠

因此'%Y-%m-%d %H:%M'

使用这个代替

date_string = df3["Date"] 
date_times = pd.to_datetime(date_string, yearfirst=True, format='%Y-%m-%d %H:%M') 
df3_i = df3.set_index(date_times) 

如果不工作,那么你有不一致的日期格式和我的首要行动将位要嚷嚷谁创造了我试图分析的东西。

如果这恰好是您的情况,请提出另一个问题......或者我可以。

+1

我推荐使用'infer_datetime_format = True'并且完全绕过任何静态编码格式......除非您完全确定格式。它通常也会加速解析。 – pshep123

+0

这没有奏效。而且,我已经查看了答案的来源,但仍然出现错误。我认为一些日期没有前导零。 –