Skip to content

Cum să citești și să scrii fișiere CSV cu pandas

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să citești și să scrii fișiere CSV cu pandas. We cover key concepts, practical examples, and best practices.

pandas oferă funcțiile read_csv și to_csv pentru importul și exportul rapid al datelor tabelare din fișiere CSV, cu suport pentru delimiteri, encoding și opțiuni avansate.

The Problem

Fișierele CSV din lumea reală vin cu delimiteri diferiți, encoding-uri neașteptate, anteturi lipsă, ghilimele și valori nule. O citire naivă produce DataFrame-uri corupte sau aruncă erori greu de înțeles.

The Wrong Way

import pandas as pd

df = pd.read_csv("date.csv")
print(df.head())

Problemă: read_csv() folosește valori implicite (virgulă, UTF-8, prima linie ca header). Dacă fișierul are delimiter ;, encoding latin1 sau nu are antet, rezultatul va fi incorect.

The Right Way

import pandas as pd

# Citește cu parametri expliciți
df = pd.read_csv(
    "date.csv",
    sep=";",
    encoding="utf-8",
    header=0,
    na_values=["", "NA", "null"],
    parse_dates=["data"],
    dtype={"id": int, "pret": float}
)

print(df.info())
print(df.head())

Output:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1000 entries, 0 to 999
Data columns:
 id        1000 non-null  int64
 nume      998 non-null   object
 pret      1000 non-null  float64
 data      1000 non-null  datetime64[ns]

Step-by-Step Fix

1. Inspectează fișierul înainte de citire

head -3 date.csv
# vezi delimiterul, header-ul, encoding-ul

2. Alege parametrii corecți pentru read_csv

df = pd.read_csv("vanzari.csv", sep=",", decimal=".", thousands=",")

3. Scrie fișierul cu to_csv

df.to_csv("export.csv", index=False, sep=",", encoding="utf-8-sig")

Prevention Tips

  • Specifică dtype pentru coloane numerice — previne conversia automată greșită
  • Folosește encoding="utf-8-sig" la export pentru compatibilitate cu Excel
  • Setează na_values pentru a trata corect valorile lipsă

Common Mistakes

  1. sep implicit (virgulă) dar fișierul e cu ; — totul într-o coloană
  2. header=0 implicit dar fișierul nu are antet — prima linie devine header
  3. Fără dtype — coloane numerice cu NaN devin float în loc de int
  4. Ignorarea encoding-uluiUnicodeDecodeError pentru fișiere Windows
  5. index=True la export — salvează și indexul pandas în fișier

FAQ

### Cum citesc un CSV fără antet?

Folosește pd.read_csv("fisier.csv", header=None, names=["col1", "col2", "col3"]).

### Cum salvez un CSV compatibil cu Excel românesc?

Folosește df.to_csv("fisier.csv", sep=";", encoding="utf-8-sig", index=False).

### Ce fac dacă am un CSV cu 1 milion de rânduri?

Folosește chunksize=10000 pentru a citi în loturi: pd.read_csv("mare.csv", chunksize=10000).

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu pandas pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro