Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 即使使用dayfirst参数,XLDATE也会出现不明确错误_Datetime_Python 2.7_Pandas - Fatal编程技术网

Datetime 即使使用dayfirst参数,XLDATE也会出现不明确错误

Datetime 即使使用dayfirst参数,XLDATE也会出现不明确错误,datetime,python-2.7,pandas,Datetime,Python 2.7,Pandas,我正在尝试将数据从excel电子表格导入到pandas dataframe对象中。我使用的是dayfirst,但仍然出现错误 日期以1990年9月25日的格式在一列中 有人能给我解释一下为什么会发生这种情况,以及我如何解决它吗?提前谢谢 编辑:似乎问题是由xlrd试图将非日期列解析为日期引起的,尽管我已经指定了日期所在的列。不幸的是,我不知道如何明确指出列不应被解析为日期。有人有什么想法吗 import pandas as pd import matplotlib.pyplot as plt f

我正在尝试将数据从excel电子表格导入到pandas dataframe对象中。我使用的是dayfirst,但仍然出现错误

日期以1990年9月25日的格式在一列中

有人能给我解释一下为什么会发生这种情况,以及我如何解决它吗?提前谢谢

编辑:似乎问题是由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

我没有找到解决这个问题的办法。最后,我不得不使用.csv版本的文件来正确解析日期。

能否显示整个错误/stacktrace。有时我发现只导出到csv更容易…@AndyHayden我添加了完整的堆栈跟踪。你的意思是我应该将.xlsx转换为.csv吗?看起来在你试图解析为日期的列中有数字15.3?@AndyHayden我没有意识到这是抛出错误的值。我已经检查了表格,15.3只出现在第5列。所以我完全搞不懂为什么要将该列解析为日期列。@Bprodz因为Excel中的日期存储为浮点数-请参阅标题下库作者的解释,并查看其中的详细信息。。。这可能是因为pandas没有正确使用datemode,因此出现了例外。。。但我对熊猫的代码库不太熟悉。。。