我正在尝试访问此页面上提供的“收益率曲线数据” 。下面的代码执行此操作,但我随后尝试将获得的压缩 CSV 文件转换为 Dataframe。当我想将压缩文件转换为数据帧时,下面的代码适用于该部分。df = pd.DataFrame.from_csv(zipfile.namelist())我在该行收到错误df = pd.DataFrame.from_csv(zipfile.namelist())。我想知道如何规避这个问题。
import urllib, urllib2
import csv
from StringIO import StringIO
import pandas as pd
import os
from zipfile import ZipFile
from pprint import pprint, pformat
my_url = 'http://www.bankofcanada.ca/stats/results/csv'
data = urllib.urlencode({"lookupPage": "lookup_yield_curve.php",
"startRange": "1986-01-01",
"searchRange": "all"})
request = urllib2.Request(my_url, data)
result = urllib2.urlopen(request)
zipdata = result.read()
zipfile = ZipFile(StringIO(zipdata))
df = pd.DataFrame.from_csv(zipfile.namelist())
print df
Run Code Online (Sandbox Code Playgroud)
谢谢
小智 5
zipfile.namelist只是返回文件名列表 - 它实际上并不提取任何内容(https://docs.python.org/3/library/zipfile.html#zipfile.ZipFile.namelist)。
这应该有效:
df = pd.read_csv(zipfile.open(zipfile.namelist()[0]))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1002 次 |
| 最近记录: |