使用Python从URL导入数据(到pandas数据框)?

问题描述 投票:0回答:1

我已经绕了这一圈。有点沮丧,因为解决方案可能即将到来。

[无论如何,我找到了一个以CSV格式返回一些数据的URL。但是,URL本身不包含csv文件名。在网络浏览器中,我可以轻松地转到该链接,然后询问他们是要打开还是保存文件。因此,最终我知道我正在获取带有名称的csv文件。我只是不确定如何在python中执行任务,因为似乎传递了一些中间数据类型(字节)

我尝试以下操作均无济于事:

import urllib
import io
import pandas as pd
link = r'http://www.cboe.com/products/vix-index-volatility/vix-options-and-futures/vix-index/vix-historical-data/'
f = urllib.request.urlopen(link)
myfile = f.read()
buf = io.BytesIO(myfile)  # originally tried io.StringIO(myfile) but then realized myfile is in bytes
df = pd.read_csv(buf)

有什么建议吗?

df应该包含与以下内容相似的数据:

1/5 / 2004,18.45,18.49,17.44,17.491/6 / 2004,17.66,17.67,16.19,16.731/7 / 2004,16.72,16.75,15.5,15.51/8 / 2004,15.42,15.68,15.32,15.611/9 / 2004,16.15,16.88,15.57,16.751/12 / 2004,17.32,17.46,16.79,16.82

这里是错误消息的最后一行:

ParserError:标记数据时出错。 C错误:第24行中应有2个字段,看到4

python pandas url
1个回答
0
投票

@@ Fred-我认为您使用的是错误的URL。当我用http://www.cboe.com/publish/scheduledtask/mktdata/datahouse/vixcurrent.csv替换链接时,您的脚本有效。

我在您的脚本最初指向的页面上找到此URL。

© www.soinside.com 2019 - 2024. All rights reserved.