2014-11-24 52 views
1

我试图解析一个.xls文件。我想:Python:分析.xls文件与xlrd和熊猫都失败

# Import libraries 
import pandas as pd 
import matplotlib.pyplot as plt 
import numpy.random as np 
import sys 

print 'Python version ' + sys.version 
print 'Pandas version: ' + pd.__version__ 

# Parse a specific sheet 
df = pd.read_excel('NextDebitCreditCard.xls', 0, index_col='StatusDate') 
df.dtypes 

但我不断收到

File "/usr/lib/python2.7/dist-packages/xlrd/book.py", line 1252, in bof_error 
    raise XLRDError('Unsupported format, or corrupt file: ' + msg) 
xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found '<html la' 

我得到了与xlrd同样的错误。我不确定它是否是普通的xls文件,因此我在此处添加文件的开头和结尾:

<html lang="he"> 
<head> 
<META CONTENT="text/html" HTTP-EQUIV="Content-Type" charset="iso-8859-8"></META><META CONTENT="no-cache" HTTP-EQUIV="Pragma"></META><META CONTENT="0" HTTP-EQUIV="expires"></META><title> 
<TEXT> 
       some text here 
..... 
..... 
..... 
..... 
&#8362; 942.56</td></tr></table> 
     </div> 
     </div></td><td class="homeMessagesTd" id="leftSide">     
          </td></tr></table></form></body></html> 

任何想法?谢谢!

+1

它看起来像有人保存Excel文件为HTML ... – MattDMo 2014-11-24 22:06:12

+0

嗯是的,我可以看到,但由于Microsoft Excel中有没有问题阅读它,我想,也许这只是正常。有没有解析器? – Yotam 2014-11-24 22:30:37

回答

1

从注释我可以看到你意识到这不是一个'真正'的Excel文件,而是一个保存为.xls扩展名的HTML文件。既然你没有给我们一个完整的文件,我们只能猜测什么可能或者不可以工作。

我与熊猫的HTML解析工具开始:

http://pandas.pydata.org/pandas-docs/stable/io.html#io-read-html

你可以尝试:

df = pd.read_html('NextDebitCreditCard.xls') 

如果没有得到关闭,它可能是时间来变成美丽。

1

最后我找到了解决方案。 如果您从网上下载文件,它可能不是xls格式。但它是xls中可读的文件。如果您尝试使用pd.read_html,则可能无法正常工作,因为它不会找到任何表。

解决方案:尝试:

pd.read_csv('filename.xls', sep ='\t')