Escribir un DataFrame de Pandas a CSV

Suraj Joshi 30 enero 2023
  1. Sintaxis de la función pandas.DataFrame.to_csv()
  2. Escribir un DataFrame en un archivo CSV usando la función pandas.DataFrame.to_csv()
  3. Escribir un DataFrame en un archivo CSV usando la función pandas.DataFrame.to_csv() ignorando los índices
  4. Especificar un separador en la función pandas.DataFrame.to_csv()
Escribir un DataFrame de Pandas a CSV

Este tutorial explica cómo podemos escribir un DataFrame en un archivo CSV utilizando la función pandas.DataFrame.to_csv(). La función pandas.DataFrame.to_csv() escribe las entradas del DataFrame en un archivo CSV.

Sintaxis de la función pandas.DataFrame.to_csv()

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=".",
)

Escribir un DataFrame en un archivo CSV usando la función 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)

print(mid_term_marks_df)

Producción :

  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

Entonces escribiremos el DataFrame mid_term_marks_df en un archivo 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")

Se creará un archivo llamado midterm.csv y se escribirán los valores del DataFrame en el archivo donde los valores adyacentes en una fila están separados por una coma ,.

El contenido del archivo 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 defecto, la función pandas.DataFrame.to_csv() también escribe los índices del DataFrame en el CSV, pero el índice puede no ser siempre útil en todos los casos.

Escribir un DataFrame en un archivo CSV usando la función pandas.DataFrame.to_csv() ignorando los índices

Para ignorar los índices, podemos establecer index=False en la función 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)

En este caso, el contenido del archivo 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

A veces podemos obtener UnicodeEncodeError al escribir el contenido de un DataFrame en un archivo CSV. En estos casos, podemos establecer encoding='utf-8' que activa el formato de codificación utf-8.

Especificar un separador en la función pandas.DataFrame.to_csv()

Por defecto, al escribir el DataFrame en un archivo CSV, los valores están separados por una coma. Si queremos utilizar cualquier otro símbolo como separador, podemos especificarlo utilizando el 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")

En este caso, el contenido del archivo 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

Aquí los valores están separados por un tabulador.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Artículo relacionado - Pandas DataFrame