Cum să cureți date în Python
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
- Fillna(0) pentru toate coloanele — distorsionează mediana și deviația standard
- Dropna fără specificarea coloanei — pierzi rânduri care ar fi putut fi salvate
- Ignorarea duplicatelor parțiale — înlocuiește
keep=Falsecând nu e cazul - Ștergerea outlier-ilor fără context — unele valori extreme sunt legitime (ex: salariul unui CEO)
- Fără backup — odată ce ai suprascris datele, nu te mai poți întoarce
FAQ
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