Imagem de Alexas_Fotos por Pixabay |
Já vimos nos tutoriais passados, que os arquivos csv são muito comuns para a criação de datasets. A principal característica dos arquivos csv é que eles são texto puro, sem formatação. Por isso eles podem ficar com um tamanho muito grande. Para tentar resolver esse problema os arquivos csv podem ser compactados. Nesse tutorial vamos aprender a carregar um arquivo csv compactado num arquivo ZIP.
O arquivo csv que vamos utilizar é o único arquivo dentro do arquivo ZIP. Você pode conseguir um arquivo semelhante compactando o arquivo filmes.csv. Nesse tutorial também vamos trabalhar com arquivos ZIP, com vários arquivos csv compactados.
Os arquivos que vamos usar nesse tutorial podem ser baixados gratuitamente aqui.
Como ler arquivos csv compactados
Vamos começar lendo um único arquivo csv compactado. Podemos fazer isso com o método read_csv()
. A diferença é a extensão do arquivo que será zip e não csv.
>>> import pandas as pd >>> animelist = pd.read_csv('AnimeList.zip') >>> animelist anime_id ... ending_theme 0 11013 ... ['#1: "Nirvana" by MUCC (eps 1, 11-12)', '#2: ... 1 2104 ... ['#1: "Ashita e no Hikari (?????)" by Asuka Hi... 2 5262 ... ['#1: "Rottara Rottara (???? ????)" by Buono! ... 3 721 ... ['"Watashi No Ai Wa Chiisaikeredo" by Ritsuko ... 4 12365 ... ['#1: "Pride on Everyday" by Sphere (eps 1-13)... ... ... ... ... 14473 26089 ... [] 14474 21525 ... [] 14475 37897 ... [] 14476 34193 ... [] 14477 37908 ... [] [14478 rows x 31 columns]
Com arquivos compactados, contendo mais de um arquivo csv, a leitura desse arquivo é um pouco mais complicada, comparado com o exemplo anterior. Utilizando o método read_csv()
não podemos especificar qual arquivo queremos ler dentro de um arquivo ZIP, mas podemos utilizar o módulo zipfile, que é uma biblioteca padrão do Python, para fazer isso.
Nesse exemplo vamos utilizar um arquivo zip contento mais de um arquivo csv. Você pode usar qualquer arquivo zip contendo arquivos csv.
>>> import pandas as pd >>> import zipfile >>> arq_zip = zipfile.ZipFile('dataset.zip') >>> print('\n'.join(arq_zip.namelist())) filmes.csv anime_cleaned.csv anime_filtered.csv AnimeList.csv >>> animeslist = pd.read_csv(arq_zip.open('AnimeList.csv')) >>> animeslist anime_id ... ending_theme 0 11013 ... ['#1: "Nirvana" by MUCC (eps 1, 11-12)', '#2: ... 1 2104 ... ['#1: "Ashita e no Hikari (?????)" by Asuka Hi... 2 5262 ... ['#1: "Rottara Rottara (???? ????)" by Buono! ... 3 721 ... ['"Watashi No Ai Wa Chiisaikeredo" by Ritsuko ... 4 12365 ... ['#1: "Pride on Everyday" by Sphere (eps 1-13)... ... ... ... ... 14473 26089 ... [] 14474 21525 ... [] 14475 37897 ... [] 14476 34193 ... [] 14477 37908 ... [] [14478 rows x 31 columns]
Você pode trabalhar com arquivos compactados do tipo GZIP, XZ e BZ2. O método read_csv()
aceita esses tipos de compressão.
Referência:
Método read_csv()
Método ZipFile()
0 comentários:
Postar um comentário