使用Python从URL导入数据(导入数据帧)?
我在这件事上绕了一圈。有点令人沮丧,因为解决方案可能就在眼前 无论如何,我发现了一个URL,它以CSV格式返回一些数据。但是,URL本身不包含csv文件名。在web浏览器中,我可以很容易地转到链接,并询问我是否要打开或保存文件。所以,最终我知道我得到了一个名为csv的文件。我只是不确定如何在python中执行任务,因为似乎传递了一些中间数据类型(字节) 我尝试了以下方法,但没有效果:使用Python从URL导入数据(导入数据帧)?,python,pandas,url,Python,Pandas,Url,我在这件事上绕了一圈。有点令人沮丧,因为解决方案可能就在眼前 无论如何,我发现了一个URL,它以CSV格式返回一些数据。但是,URL本身不包含csv文件名。在web浏览器中,我可以很容易地转到链接,并询问我是否要打开或保存文件。所以,最终我知道我得到了一个名为csv的文件。我只是不确定如何在python中执行任务,因为似乎传递了一些中间数据类型(字节) 我尝试了以下方法,但没有效果: import urllib import io import pandas as pd link = r'htt
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.49
1/6/2004,17.66,17.67,16.19,16.73
1/7/2004,16.72,16.75,15.5,15.5
1/8/2004,15.42,15.68,15.32,15.61
1/9/2004,16.15,16.88,15.57,16.75
1/12/2004,17.32,17.46,16.79,16.82
以下是错误消息的最后一行:
ParserError:标记数据时出错。C错误:第24行应该有2个字段,看到了4个Fred-我认为您只是使用了错误的URL。当我将链接替换为时,您的脚本工作正常
我在您的脚本最初指向的页面上找到了此URL 这并不是一个真正的答案,但仅仅通知CBOE的链接目前无效(从2020-2007年12月到今天2020-23年12月),不确定url是否会返回。datahub.io中也有类似的格式,但它不是最新的,CHRIS通过Quandl提供的免费数据也不是最新的。我还没有找到来自CBOE的官方通知,说明这个url将不再受支持。在quantconnect中发布了类似的问题/发现 以上来自CBOE的url似乎不再有效 过期数据可从datahub.io和quandl获取:
url = 'https://datahub.io/zelima1/finance-vix/r/vix-daily.csv'
df = pd.read_csv(url)
print(df.shape)
print(df.Date)
Quandl CHRIS VIX:
https://www.quandl.com/data/CHRIS/CBOE_VX1-S-P-500-Volatility-Index-VIX-Futures-Continuous-Contract-1-VX1-Front-Month
csv文件的url不是
http://www.cboe.com/publish/scheduledtask/mktdata/datahouse/vixcurrent.csv
我在浏览器和终端中打开了您代码中的链接,这是一个标准网页。@EricTruett您是对的。查看网页时可以找到实际链接。
url = 'https://datahub.io/zelima1/finance-vix/r/vix-daily.csv'
df = pd.read_csv(url)
print(df.shape)
print(df.Date)
(3488, 5)
(3488, 5)
0 2004-01-02
1 2004-01-05
2 2004-01-06
3 2004-01-07
4 2004-01-08
...
3483 2017-11-01
3484 2017-11-02
3485 2017-11-03
3486 2017-11-06
3487 2017-11-07
Name: Date, Length: 3488, dtype: object
https://www.quandl.com/data/CHRIS/CBOE_VX1-S-P-500-Volatility-Index-VIX-Futures-Continuous-Contract-1-VX1-Front-Month