HOWTO · Pandas
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().
En esta página
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.