Escrever um Pandas DataFrame para CSV

  1. A sintaxe de pandas.DataFrame.to_csv() função
  2. Escrever um DataFrame em ficheiro CSV utilizando a função pandas.DataFrame.to_csv() Função
  3. Escrever um DataFrame no ficheiro CSV utilizando a função pandas.DataFrame.to_csv() Ignorando os Índices
  4. 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.

Artigo relacionado - Pandas DataFrame

  • Como adicionar o Header Row a um DataFrame Pandas
  • Comparar Pandas DataFrame Objectos