【发布时间】:2016-12-18 20:21:10
【问题描述】:
我正在尝试使用 Python 3.5 和 Pandas 将 Excel 文件从以下 URL 加载到数据框中:
link = "https://hub.coursera-notebooks.org/user/ejquqxfjajkufidbixxvkx/notebooks/Energy%20Indicators.xls"
首先我尝试使用 urllib.request 手动下载文件,以便在之后立即阅读:
import urllib.request
urllib.request.urlretrieve (link, "Energy Indicators.xls")
我得到了“Energy Indicators.xls”文件,是的,但它不是一个有效的 xls 文件。它看起来更像是一个扩展名为 xls 的 html 文件。
然后我尝试使用 read_csv 直接加载文件:
energy = pd.read_csv(link, skiprows = 16, header = 0, skipfooter = 38)
但我收到了一个回溯错误:“pandas.io.common.CParserError: 标记数据时出错。C 错误:第 12 行中应有 1 个字段,看到 2”。如果我尝试在没有参数skirows、header等的情况下读取它。我得到另一个错误:“ValueError:第41行中的预期1个字段,看到3”。
有什么想法吗?顺便说一句,我正在使用 Mac OS Sierra 和 PyCharm Community Edition 2016.3
【问题讨论】:
-
看来需要
read_excel-energy = pd.read_excel(link, skiprows = 16, header = 0, skipfooter = 38) -
差不多。我收到一个新错误:“xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b'\n\n\n
-
嗯,看起来很复杂,因为需要认证。
-
在这种情况下,您知道如何指定我的凭据吗??
-
这将取决于 coursera 的处理方式。这是一个可以使用 http.client stackoverflow.com/a/7000784/642070 的示例。 requests 模块可能就足够了 (
requests.get(theurl, auth=('user', 'passwd')))。还有 coursera 下载器,包括 pypi 上的 python 模块:coursera.
标签: python-3.x pandas