Scrivi un Pandas DataFrame in CSV

  1. Sintassi della funzione pandas.DataFrame.to_csv()
  2. Scrivi un DataFrame in un file CSV usando la funzione pandas.DataFrame.to_csv()
  3. Scrivi un DataFrame in un file CSV usando la funzione pandas.DataFrame.to_csv() ignorando gli indici
  4. Specificare un separatore nella funzione pandas.DataFrame.to_csv()
Scrivi un Pandas DataFrame in CSV

Questo tutorial spiega come scrivere un DataFrame in un file CSV utilizzando la funzione pandas.DataFrame.to_csv(). La funzione pandas.DataFrame.to_csv() scrive le voci di DataFrame in un file CSV.

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

Scrivi un DataFrame in un file CSV usando la funzione 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) 

Produzione:

 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 

Quindi scriveremo il DataFrame mid_term_marks_df in un file 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") 

Creerà un file chiamato midterm.csv e scriverà i valori DataFrame nel file dove i valori adiacenti in una riga sono separati da una virgola ,.

Il contenuto del file midterm.csv sarà:

,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 

Per impostazione predefinita, la funzione pandas.DataFrame.to_csv() scrive anche gli indici di DataFrame nel CSV, ma l’indice potrebbe non essere sempre utile in tutti i casi.

Scrivi un DataFrame in un file CSV usando la funzione pandas.DataFrame.to_csv() ignorando gli indici

Per ignorare gli indici, possiamo impostare index=False nella funzione 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) 

In questo caso, il contenuto del file midterm.csv sarà:

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 volte possiamo ottenere UnicodeEncodeError durante la scrittura del contenuto di un DataFrame in un file CSV. In questi casi, possiamo impostare encoding='utf-8' che abilita il formato di codifica utf-8.

Specificare un separatore nella funzione pandas.DataFrame.to_csv()

Per impostazione predefinita, durante la scrittura del DataFrame in un file CSV, i valori sono separati da una virgola. Se vogliamo usare qualsiasi altro simbolo come separatore, possiamo specificarlo usando il parametro 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") 

In questo caso, il contenuto del file midterm.csv sarà:

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 

Qui i valori sono separati da una tabulazione.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Pandas DataFrame