将read_excel用于数据框时的ImportError

时间:2016-02-08 07:23:30

标签: python excel pandas

我在尝试使用Pandas的read_excel函数时遇到了ImportError。

我有一个完美读取CSV文件和read_csv函数的脚本,使用argparse允许命令行参数。我以为我会尝试修改这个脚本,以便它可以读取Excel文件。

这是适用于CSV文件的代码。

df = pd.read_csv(args.src, header=0, skiprows=Datarow, na_values=bad_data,
             usecols=[timecol, SPcol, PVcol, MVcol], names=['Timestamp', 'SP', 'PV', 'MV'])

我的代码允许用户选择他们想要从中读取数据的起始行和列,并将它们解析为新的数据框。一切顺利。

使用read_excel函数,我最初想出了这个:

df = pd.read_excel(args.src, skiprows=Datarow, na_values=bad_data,
             parse_cols=[timecol, SPcol, PVcol, MVcol], header=Headerrow)

我删除了header参数,因为它不是必需的。我根据Pandas文档将usecols更改为parse_cols。在read_csv函数中,我使用了列标题的自定义名称,但看起来read_excel无法执行此操作。所以我用header参数替换了这个功能,并允许用户在包含列名的Excel源文件中设置行号。

当我运行这个脚本时,我得到了这个Traceback:

Traceback (most recent call last):
File "cleanse.py", line 74, in <module>
    parse_cols=[timecol, SPcol, PVcol, MVcol], header=Headerrow)
  File "/usr/local/lib/python2.7/site-packages/pandas/io/excel.py", line 163, in read_excel
    io = ExcelFile(io, engine=engine)
  File "/usr/local/lib/python2.7/site-packages/pandas/io/excel.py", line 187, in __init__
    import xlrd  # throw an ImportError if we need to
ImportError: No module named xlrd

我在另一篇帖子中看到有人遇到此错误时回复了“pip install xlrd”,所以我这样做了。同样的问题。然后我开始逐个删除可选参数。同样的问题。我直接回到源文件参数,仍然得到相同的错误。

任何提示或建议都将不胜感激。

0 个答案:

没有答案