J'essaie de décompresser un fichier csv et de le transmettre aux pandas afin que je puisse travailler sur le fichier.
Le code que j'ai essayé jusqu'à présent est:
import requests, zipfile, StringIO
r = requests.get('http://data.octo.dc.gov/feeds/crime_incidents/archive/crime_incidents_2013_CSV.zip')
z = zipfile.ZipFile(StringIO.StringIO(r.content))
crime2013 = pandas.read_csv(z.read('crime_incidents_2013_CSV.csv'))
Après la dernière ligne, bien que python soit capable d'obtenir le fichier, j'obtiens un "n'existe pas" à la fin de l'erreur.
Quelqu'un peut-il me dire ce que je fais de manière incorrecte?
quotechar
?.tar.gz
fichier, mais cela ne fonctionne probablement qu'avec un.gz
fichier.Je pense que vous voulez
open
le ZipFile, qui renvoie un objet semblable à un fichier, plutôt queread
:la source
pd.read_csv(z.open('crime_incidents_2013_CSV.csv'), parse_dates=['REPORTDATETIME', 'LASTMODIFIEDDATE'])
pd.read_csv(z.open(z.infolist()[0].filename))
Il semble que vous n'ayez même plus besoin de spécifier la compression. L'extrait de code suivant charge les données de filename.zip dans df.
(Bien sûr, vous devrez spécifier un séparateur, un en-tête, etc. s'ils sont différents des valeurs par défaut.)
la source
Pour les fichiers " zip ", vous pouvez utiliser
import zipfile
et votre code fonctionnera simplement avec ces lignes:Et le résultat sera:
la source
https://www.kaggle.com/jboysen/quick-gz-pandas-tutorial
Veuillez suivre ce lien.
la source