2014-03-04 31 views
0

我試圖從Excel電子表格解析日期中將數據導入到熊貓數據框對象中。我使用dayfirst但我仍然得到一個錯誤XLDateAmbiguousdocsXLDate即使在使用dayfirst參數時也有錯誤錯誤

的日期是在一列格式25/09/1990

有人能向我解釋,爲什麼出現這種情況以及我如何修理它?提前致謝。

編輯:好像這個問題是由xlrd試圖解析一個非日期列作爲日期,甚至認爲我已經指定了日期所在的列。不幸的是,我不知道如何明確指出不應該將列解析爲日期。有人有任何想法嗎?

import pandas as pd 
import matplotlib.pyplot as plt 
from datetime import datetime 
import dateutil 

path6 = 'C:\\Users\\Site2_Homepage_2013-06-04.xlsx' 
df8 = pd.io.excel.read_excel(path6, 'Site2_Homepage_2012_06_13', header=1, parse_dates=True, dayfirst=True) 

XLDateAmbiguous       Traceback (most recent call last) 
<ipython-input-17-4a83d104ab72> in <module>() 
     4 path7 = 'C:\\Users\\Site4_Homepage_2013-06-04.xlsx' 
     5 path8 = 'C:\\Users\\Site7_Homepage_2013-06-04.xlsx' 
----> 6 df8 = pd.io.excel.read_excel(path6, 'Site2_Homepage_2012_06_13', header=1, parse_dates=True, dayfirst=True) 
     7 df9 = pd.io.excel.read_excel(path7, 'Site4_Homepage_2012_06_13', header=1, parse_dates=[3], dayfirst=True) 
     8 df10 = pd.io.excel.read_excel(path8, 'Site7_Homepage_2012_06_13', header=1, parse_dates=[3], dayfirst=True) 

C:\Users\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\io\excel.pyc in read_excel(io, sheetname, **kwds) 
    101  engine = kwds.pop('engine', None) 
    102 
--> 103  return ExcelFile(io, engine=engine).parse(sheetname=sheetname, **kwds) 
    104 
    105 

C:\Users\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\io\excel.pyc in parse(self, sheetname, header, skiprows, skip_footer, index_col, parse_cols, parse_dates, date_parser, na_values, thousands, chunksize, convert_float, has_index_names, **kwds) 
    206         skip_footer=skip_footer, 
    207         convert_float=convert_float, 
--> 208         **kwds) 
    209 
    210  def _should_parse(self, i, parse_cols): 

C:\Users\AppData\Local\Enthought\Canopy32\User\lib\site-packages\pandas\io\excel.pyc in _parse_excel(self, sheetname, header, skiprows, skip_footer, index_col, has_index_names, parse_cols, parse_dates, date_parser, na_values, thousands, chunksize, convert_float, **kwds) 
    267     if parse_cols is None or should_parse[j]: 
    268      if typ == XL_CELL_DATE: 
--> 269       dt = xldate_as_tuple(value, datemode) 
    270       # how to produce this first case? 
    271       if dt[0] < datetime.MINYEAR: # pragma: no cover 

C:\Users\AppData\Local\Enthought\Canopy32\User\lib\site-packages\xlrd\xldate.pyc in xldate_as_tuple(xldate, datemode) 
    78 
    79  if xldays < 61 and datemode == 0: 
---> 80   raise XLDateAmbiguous(xldate) 
    81 
    82  jdn = xldays + _JDN_delta[datemode] 

XLDateAmbiguous: 15.3 
+0

你可以顯示整個錯誤/堆棧跟蹤。有時候我發現它更容易導出到csv ... –

+0

@AndyHayden我添加了完整的堆棧跟蹤。你的意思是我應該將.xlsx轉換爲.csv? – Bprodz

+0

看起來你試圖解析爲日期的列中有數字(15.3)? –

回答

0

我無法找到解決方案。最後,我不得不使用.csv版本的日期文件來正確解析。

相關問題