Estou tentando descompactar um arquivo csv e passá-lo para o pandas para que eu possa trabalhar no arquivo.
O código que tentei até agora é:
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'))
Após a última linha, embora o python seja capaz de obter o arquivo, recebo um "não existe" no final do erro.
Alguém pode me dizer o que estou fazendo de forma incorreta?
quotechar
?.tar.gz
arquivo, mas provavelmente só funciona com um.gz
arquivo.Acho que você quer
open
o ZipFile, que retorna um objeto semelhante a um arquivo, em vez deread
:fonte
pd.read_csv(z.open('crime_incidents_2013_CSV.csv'), parse_dates=['REPORTDATETIME', 'LASTMODIFIEDDATE'])
pd.read_csv(z.open(z.infolist()[0].filename))
Parece que você não precisa mais especificar a compressão. O trecho a seguir carrega os dados de filename.zip em df.
(Claro, você precisará especificar o separador, o cabeçalho, etc. se eles forem diferentes dos padrões.)
fonte
Para arquivos " zip ", você pode usar
import zipfile
e seu código funcionará simplesmente com estas linhas:E o resultado será:
fonte
https://www.kaggle.com/jboysen/quick-gz-pandas-tutorial
Por favor, siga este link.
fonte