【问题标题】:using Pandas to download/load xls from URL file使用 Pandas 从 URL 文件下载/加载 xls
【发布时间】: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


【解决方案1】:

对于这个特定的 Coursera 练习,而不是作为一般情况,您不能在 read_excel 函数中使用整个 URL,而只能使用“Energy Indicators.xls”

energy = pd.read_excel('Energy Indicators.xls',...)

【讨论】:

    猜你喜欢
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多