我知道一些先前提出的问题,但没有一个解决方案可用于我在下面提供的可重现的例子.
我试图读取.xls从文件中http://www.eia.gov/coal/data.cfm#production -特别是历史详细的煤炭产量数据(1983年至二零一三年) coalpublic2012.xls文件,该文件可以免费获得通过下拉.熊猫无法读懂它.
相比之下,最近一年可用的coalpublic2013.xls文件,2013年, 文件,没有问题:
import pandas as pd
df1 = pd.read_excel("coalpublic2013.xls")
Run Code Online (Sandbox Code Playgroud)
但未来十年的.xls文件(2004-2012)不会加载.我用Excel查看了这些文件,它们打开了,并且没有损坏.
我从熊猫那里得到的错误是:
---------------------------------------------------------------------------
XLRDError Traceback (most recent call last)
<ipython-input-28-0da33766e9d2> in <module>()
----> 1 df = pd.read_excel("coalpublic2012.xlsx")
/Users/jonathan/anaconda/lib/python2.7/site-packages/pandas/io/excel.pyc in read_excel(io, sheetname, header, skiprows, skip_footer, index_col, parse_cols, parse_dates, date_parser, na_values, thousands, convert_float, has_index_names, converters, engine, **kwds)
161
162 if not isinstance(io, ExcelFile):
--> 163 io = ExcelFile(io, engine=engine)
164
165 return io._parse_excel(
/Users/jonathan/anaconda/lib/python2.7/site-packages/pandas/io/excel.pyc in __init__(self, io, **kwds)
204 self.book …Run Code Online (Sandbox Code Playgroud)