quinta-feira, 6 de agosto de 2020

Criando arquivo csv com pandas

Photo by Maksym Kaharlytskyi on Unsplash

Na internet podemos achar vários arquivos csv. Cada um com tipos deferentes de dados. Esses arquivos têm coisas boas e coisas ruins. A coisa boa é que eles são facilmente lidos por nos humanos, podem ser abertos com um editor de texto simples e podem ser acessados pela maioria dos editores de planilhas. O lado negativo dos arquivos csv é a falta de um padrão para o arquivo. Tem arquivos csv que utilizam vírgula como separador, outros usam ponto e vírgula. Não é possível impor o tipo de dado. Esse tipo de coisa pode tornar a criação desse arquivo complicada.
Nesse tutorial vamos aprender como criar um arquivo csv a partir de um dataframe pandas.
Os dataframes pandas têm métodos que começam com "to_". Os métodos que começam assim são métodos de exportação. Usaremos o método to_csv(). Com ele é possível descarregar um dataframe pandas num arquivo csv.

Como criar um arquivo csv com pandas

Para criar um arquivo csv primeiro precisamos de um dataframe. Nesse exemplo vamos criar um dataframe e depois salvar esse dataframe no HD como um arquivo csv.

>>> import pandas as pd
>>> nome = ['Maria', 'João', 'Daniel', 'Paulo']
>>> idade = [36, 38, 24, 66]
>>> dados = {
... 'nome':nome,
... 'idade':idade
... }
>>> pessoas = pd.DataFrame(dados)
>>> type(pessoas)
<class 'pandas.core.frame.DataFrame'>
>>> pessoas
     nome  idade
0   Maria     36
1    João     38
2  Daniel     24
3   Paulo     66

>>> pessoas.to_csv('pessoas.csv')

Com esse código criamos um dataframe com três colunas, as duas que criamos (nome e idade) e a de índice que é adicionada pelo pandas. Depois salvamos esse dataframe no arquivo pessoas.csv.
Agora com o arquivo criado podemos abri-lo com o método read_csv().

>>> pessoas = pd.read_csv('pessoas.csv')
>>> pessoas
   Unnamed: 0    nome  idade
0           0   Maria     36
1           1    João     38
2           2  Daniel     24
3           3   Paulo     66

Podemos notar que quando salvamos o arquivo com o método to_csv() foi adicionado uma coluna de índice na primeira linha, mas sem nome. E quando abrimos esse arquivo com o método read_csv() é adicionado outra coluna de índice no inicio. Assim ficamos com duas colunas de índice, uma com nome e outra sem (unnamed). Para resolvermos esse problema usamos o parâmetro index_col do método read_csv().

>>> pessoas = pd.read_csv('pessoas.csv', index_col=0)
>>> pessoas
     nome  idade
0   Maria     36
1    João     38
2  Daniel     24
3   Paulo     66

Uma alternativa, para resolver o mesmo problema, é fazer uso do parâmetro index do método to_csv(). Se passarmos o valor False o arquivo não terá um índice.

>>> pessoas = pd.DataFrame(dados)
>>> pessoas.to_csv('pessoas.csv', index=False)
>>> pessoas = pd.read_csv('pessoas.csv')
>>> pessoas
     nome  idade
0   Maria     36
1    João     38
2  Daniel     24
3   Paulo     66

Referência:
Método DataFrame()
Método to_csv()
Método read_csv()

0 comentários:

Postar um comentário