Skip to content

Cum să cureți date în Python

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să cureți date în Python. We cover key concepts, practical examples, and best practices.

Curățarea datelor în Python înseamnă identificarea și remedierea valorilor lipsă, duplicatelor și outlier-ilor pentru a obține seturi de date corecte și gata de analiză.

The Problem

Datele reale conțin aproape întotdeauna erori: câmpuri goale, rânduri duplicate, valori aberante. Ignorarea acestor probleme duce la concluzii greșite și modele de machine learning cu performanță slabă.

The Wrong Way

import pandas as pd

df = pd.read_csv("date.csv")
# umple toate valorile lipsă cu 0 — fără discernământ
df = df.fillna(0)
# scoate duplicatele fără să verifici
df = df.drop_duplicates()

Problemă: Umplerea oarbă cu 0 distorsionează statisticile, iar ștergerea duplicatelor poate elimina date valide.

The Right Way

import pandas as pd
import numpy as np

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

# 1. Identifică valorile lipsă
print("Valori lipsă per coloană:\n", df.isnull().sum())

# 2. Tratează valorile lipsă contextual
df["venit"] = df["venit"].fillna(df["venit"].median())
df["oras"] = df["oras"].fillna("Necunoscut")
df.dropna(subset=["id_client"], inplace=True)

# 3. Identifică și analizează duplicatele
dups = df.duplicated(subset=["id_client"], keep="first")
print(f"Duplicate găsite: {dups.sum()}")

# 4. Detectează outlieri pe baza IQR
Q1 = df["venit"].quantile(0.25)
Q3 = df["venit"].quantile(0.75)
IQR = Q3 - Q1
outliers = df[(df["venit"] < Q1 - 1.5 * IQR) | (df["venit"] > Q3 + 1.5 * IQR)]
print(f"Outlieri detectați: {len(outliers)}")

Output:

Valori lipsă per coloană:
 id_client     0
 nume          2
 venit        12
 oras          5
 dtype: int64
Duplicate găsite: 3
Outlieri detectați: 4

Step-by-Step Fix

1. Inspecționează datele

Rulează df.info(), df.describe() și df.isnull().sum() pentru a înțelege amploarea problemei.

2. Tratează valorile lipsă

Alege strategia potrivită: mediană pentru numerice, modă pentru categorice, ștergere doar dacă procentul de valori lipsă este mic.

3. Elimină duplicatele

Folosește df.duplicated() pentru identificare și df.drop_duplicates() pentru eliminare, specificând coloanele cheie.

4. Gestionează outlier-ii

Aplică metoda IQR sau Z-score, apoi decide dacă elimini, transformi sau păstrezi valorile extreme.

Prevention Tips

  • Rulează validări automate la încărcarea datelor
  • Documentează deciziile de curățare (de ce ai eliminat sau imputat)
  • Păstrează o copie a datelor brute înainte de orice transformare

Common Mistakes

  1. Fillna(0) pentru toate coloanele — distorsionează mediana și deviația standard
  2. Dropna fără specificarea coloanei — pierzi rânduri care ar fi putut fi salvate
  3. Ignorarea duplicatelor parțiale — înlocuiește keep=False când nu e cazul
  4. Ștergerea outlier-ilor fără context — unele valori extreme sunt legitime (ex: salariul unui CEO)
  5. Fără backup — odată ce ai suprascris datele, nu te mai poți întoarce

FAQ

### Cum detectez valorile lipsă într-un DataFrame?

Folosește df.isnull().sum() pentru un sumar pe coloane și df.isnull().mean() * 100 pentru procente.

### Care este cea mai sigură metodă de imputare?

Pentru coloane numerice, mediana este robustă la outlieri. Pentru categorice, moda (valoarea cea mai frecventă).

### Cum știu dacă o valoare este outlier?

Folosește intervalul interquartilic (IQR): orice valoare sub Q1 - 1.5IQR sau peste Q3 + 1.5IQR.

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