2016-06-03 9 views

Antwort

0

@Abbas, Vielen dank. In der Tat habe ich es Schritt für Schritt ausgeführt und hier ist, was ich gefunden habe. Nicht wirklich der schnellste, aber es funktioniert gut.
Ich lief es mit Pandas 0.18.1 auf Python 3.5.1 auf Mac

from zipfile import ZipFile 
from urllib.request import urlopen 
import pandas as pd 
import os 

URL = \ 
    'http://data.octo.dc.gov/feeds/crime_incidents/archive/crime_incidents_2013_CSV.zip' 

# open and save the zip file onto computer 
url = urlopen(URL) 
output = open('zipFile.zip', 'wb') # note the flag: "wb"   
output.write(url.read()) 
output.close() 

# read the zip file as a pandas dataframe 
df = pd.read_csv('zipFile.zip') # pandas version 0.18.1 takes zip files  

# if keeping on disk the zip file is not wanted, then: 
os.remove(zipName) # remove the copy of the zipfile on disk 

Ich hoffe, das hilft. Vielen Dank!

1

IIUC hier ist eine Lösung, anstatt direkt vorbei Zip-Datei auf pandas, zuerst entpacken und dann passieren die csv Datei:

from StringIO import StringIO 
from zipfile import ZipFile 
from urllib import urlopen 
import pandas as pd 

url = urlopen("http://data.octo.dc.gov/feeds/crime_incidents/archive/crime_incidents_2013_CSV.zip") 
zipfile = ZipFile(StringIO(url.read())) 
f = open(zipfile.NameToInfo.keys()[0],'wb') 
f.write(zipfile.open(zipfile.NameToInfo.keys()[0]).read()) 
f.close() 

df = pd.read_csv(zipfile.NameToInfo.keys()[0]) 

Und produzieren ein DataFrame wie folgt aus:

enter image description here

+0

Diese Lösung funktioniert nicht, da ich nicht in der Lage bin, die von urllib importieren URL zu öffnen ... Das Problem, das ich in läuft, ist, dass mein Code die Fehlermeldung auslöst: File "/ Library /Frameworks/Python.framework/Versions/3.5/lib/python3.5/zipfile.py ", Zeile 1093, in _RealGetContents raise BadZipFile (" Datei ist keine Zip-Datei ") zipfile.BadZipFile: Datei ist kein Zip Datei –

+0

Konnten Sie die zip-Datei mit einem Browser herunterladen? – Abbas

+0

ja, absolut. Danke, dass du dir das angeschaut hast. –