Ce face DataFrame.to_csv()
to_csv scrie tabelul în format CSV: un rând de antet cu numele coloanelor, apoi câte un rând pentru fiecare înregistrare. Implicit scrie și indexul ca primă coloană; de cele mai multe ori nu vrei asta, așa că dai index=False.
Dacă nu dai o cale, metoda nu scrie niciun fișier, ci returnează textul CSV ca str. E util ca să vezi rapid ce ar ajunge în fișier.
Pentru Excel cu setări românești, folosește sep=";", decimal="," și encoding="utf-8-sig": semnătura de la începutul fișierului (BOM) îl ajută pe Excel să afișeze corect diacriticele.
Parametri
| Parametru | Descriere |
|---|---|
path_or_buf |
Calea fișierului sau un obiect de tip fișier. Dacă lipsește, metoda returnează textul. |
sep |
Separatorul dintre valori. Implicit ",". |
index |
Dacă scrie indexul ca primă coloană. Implicit True. |
header |
Dacă scrie rândul cu numele coloanelor (sau o listă cu alte nume). |
columns |
Doar aceste coloane, în această ordine. |
na_rep |
Textul scris în locul valorilor lipsă. Implicit gol. |
encoding |
Codificarea fișierului. Implicit "utf-8". |
decimal |
Caracterul pentru zecimale. |
Ce returnează
None când scrie într-un fișier; textul CSV (str) când nu dai cale.
Exemple
Exemplul 1: Salvare fără index
Cu index=False, fișierul conține doar coloanele tabelului. Exemplul citește fișierul înapoi ca text, ca să vezi exact ce s-a scris.
import pandas as pd
df = pd.DataFrame({
"nume": ["Ana", "Mihai", "Ioana"],
"oraș": ["Iași", "Cluj", "Brașov"],
"nota": [9.5, 8.0, 10.0],
})
df.to_csv("note.csv", index=False)
with open("note.csv", encoding="utf-8") as f:
print(f.read())
Rezultat
nume,oraș,nota
Ana,Iași,9.5
Mihai,Cluj,8.0
Ioana,Brașov,10.0
Exemplul 2: Fără cale: textul CSV
Fără cale, to_csv returnează un șir. Prima variantă păstrează indexul (coloana fără nume de la început), a doua nu.
import pandas as pd
df = pd.DataFrame({"produs": ["pâine", "lapte"], "preț": [4.5, 7.0]})
print(df.to_csv())
print(df.to_csv(index=False))
Rezultat
,produs,preț
0,pâine,4.5
1,lapte,7.0
produs,preț
pâine,4.5
lapte,7.0
Exemplul 3: CSV pentru Excel românesc
Separator ;, virgulă la zecimale și BOM UTF-8. Primii trei octeți ai fișierului sunt semnătura utf-8-sig.
import pandas as pd
df = pd.DataFrame({"oraș": ["Iași", "Timișoara"], "vânzări": [1200.5, 980.25]})
df.to_csv("vanzari.csv", sep=";", decimal=",", encoding="utf-8-sig", index=False)
with open("vanzari.csv", "rb") as f:
continut = f.read()
print(continut[:3])
print(continut[3:].decode("utf-8"))
Rezultat
b'\xef\xbb\xbf'
oraș;vânzări
Iași;1200,5
Timișoara;980,25
Greșeli frecvente
- Uiți
index=False: la recitire apare o coloană în plus,Unnamed: 0, cu numerele vechi ale rândurilor. - Deschizi în Excel un CSV cu diacritice scris cu UTF-8 simplu și vezi caractere stricate. Salvează cu
encoding="utf-8-sig". - Scrii
print(df.to_csv("fisier.csv"))și veziNone: când dai o cale, metoda scrie fișierul și nu returnează textul.
Comenzi înrudite
pd.read_csv(): Citește un fișier CSV (valori separate prin virgulă sau alt separator) într-un DataFrame.pd.read_excel() / DataFrame.to_excel(): Citește foi de calcul Excel (.xlsx) într-un DataFrame și salvează un DataFrame în Excel. Pentru .xlsx are nevoie de openpyxl.pd.read_json() / DataFrame.to_json(): Citește date JSON într-un DataFrame și transformă un DataFrame în JSON, de exemplu ca listă de obiecte cu orient=”records”.
Întrebări & Exemple de Cod:
DataFrame.to_csv()Ai o nelămurire despre utilizarea comenzii
DataFrame.to_csv()sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.