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