Escrever um Pandas DataFrame para CSV
-
A sintaxe de
pandas.DataFrame.to_csv()
função -
Escrever um DataFrame em ficheiro CSV utilizando a função
pandas.DataFrame.to_csv()
Função -
Escrever um DataFrame no ficheiro CSV utilizando a função
pandas.DataFrame.to_csv()
Ignorando os Índices -
Especificar um Separador no
pandas.DataFrame.to_csv()
Função
Este tutorial explica como podemos escrever um DataFrame num ficheiro CSV utilizando a função pandas.DataFrame.to_csv()
. A função pandas.DataFrame.to_csv()
escreve as entradas de DataFrame num ficheiro CSV.
A sintaxe de pandas.DataFrame.to_csv()
função
pandas.DataFrame.to_csv(path_or_buf= None,
sep= ",",
na_rep= "",
float_format= None,
columns= None,
header= True,
index= True,
index_label= None,
mode= "w",
encoding= None,
compression= "infer",
quoting= None,
quotechar= '""',
line_terminator= None,
chunksize= None,
date_format= None,
doublequote= True,
escapechar= None,
decimal= ".")
Escrever um DataFrame em ficheiro CSV utilizando a função pandas.DataFrame.to_csv()
Função
import pandas as pd
mid_term_marks = {"Student": ["Kamal", "Arun", "David", "Thomas", "Steven"],
"Economics": [10, 8, 6, 5, 8],
"Fine Arts": [7, 8, 5, 9, 6],
"Mathematics": [7, 3, 5, 8, 5]}
mid_term_marks_df = pd.DataFrame(mid_term_marks)
print(mid_term_marks_df)
Resultado:
Student Economics Fine Arts Mathematics
0 Kamal 10 7 7
1 Arun 8 8 3
2 David 6 5 5
3 Thomas 5 9 8
4 Steven 8 6 5
Depois escreveremos a DataFrame mid_term_marks_df
num ficheiro CSV.
import pandas as pd
mid_term_marks = {"Student": ["Kamal", "Arun", "David", "Thomas", "Steven"],
"Economics": [10, 8, 6, 5, 8],
"Fine Arts": [7, 8, 5, 9, 6],
"Mathematics": [7, 3, 5, 8, 5]}
mid_term_marks_df = pd.DataFrame(mid_term_marks)
mid_term_marks_df.to_csv("midterm.csv")
Criará um ficheiro chamado midterm.csv
e escreverá os valores DataFrame no ficheiro onde os valores adjacentes numa linha são separados por uma vírgula ,
.
O conteúdo do ficheiro midterm.csv
será:
,Student,Economics,Fine Arts,Mathematics
0,Kamal,10,7,7
1,Arun,8,8,3
2,David,6,5,5
3,Thomas,5,9,8
4,Steven,8,6,5
Por defeito, a função pandas.DataFrame.to_csv()
também escreve os índices de DataFrame no CSV, mas o índice pode nem sempre ser útil em todos os casos.
Escrever um DataFrame no ficheiro CSV utilizando a função pandas.DataFrame.to_csv()
Ignorando os Índices
Para ignorar os índices, podemos definir index=False
na função pandas.DataFrame.to_csv()
.
import pandas as pd
mid_term_marks = {"Student": ["Kamal", "Arun", "David", "Thomas", "Steven"],
"Economics": [10, 8, 6, 5, 8],
"Fine Arts": [7, 8, 5, 9, 6],
"Mathematics": [7, 3, 5, 8, 5]}
mid_term_marks_df = pd.DataFrame(mid_term_marks)
mid_term_marks_df.to_csv("midterm.csv", index=False)
Neste caso, o conteúdo do ficheiro midterm.csv
será:
Student,Economics,Fine Arts,Mathematics
Kamal,10,7,7
Arun,8,8,3
David,6,5,5
Thomas,5,9,8
Steven,8,6,5
Por vezes podemos obter UnicodeEncodeError
enquanto escrevemos o conteúdo de um DataFrame num ficheiro CSV. Nesses casos, podemos definir encoding='utf-8'
que permite o formato de codificação utf-8
.
Especificar um Separador no pandas.DataFrame.to_csv()
Função
Por defeito, enquanto se escreve o DataFrame num ficheiro CSV, os valores são separados por uma vírgula. Se quisermos utilizar qualquer outro símbolo como separador, podemos especificá-lo utilizando o parâmetro sep
.
import pandas as pd
mid_term_marks = {"Student": ["Kamal", "Arun", "David", "Thomas", "Steven"],
"Economics": [10, 8, 6, 5, 8],
"Fine Arts": [7, 8, 5, 9, 6],
"Mathematics": [7, 3, 5, 8, 5]}
mid_term_marks_df = pd.DataFrame(mid_term_marks)
mid_term_marks_df.to_csv("midterm.csv", index=False, sep="\t")
Neste caso, o conteúdo do ficheiro midterm.csv
será:
Student Economics Fine Arts Mathematics
Kamal 10 7 7
Arun 8 8 3
David 6 5 5
Thomas 5 9 8
Steven 8 6 5
Aqui os valores são separados por um separador.