Funcția Python pandas DataFrame.dropna() este utilizată pentru a elimina toate rândurile sau coloanele care conțin valori lipsă (NaN) dintr-un DataFrame. Acest lucru o face deosebit de importantă pentru pregătirea și curățarea datelor.

Care este sintaxa pentru pandas dropna()?

Funcția dropna() acceptă până la cinci parametri. Iată sintaxa acesteia:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)
python

Parametri importanți pentru dropna()

Puteți utiliza parametri pentru a influența comportamentul funcției pandas DataFrame.dropna(). Iată o prezentare generală a celor mai importanți:

Parametru Descriere Valoare implicită
axis Determină dacă vor fi eliminate rândurile (0 sau index) sau coloanele (1 sau columns) 0
how Specifică dacă toate (all) sau doar unele (any) valori trebuie să fie NaN any
thresh Specifică numărul minim de valori non-NaN pe care un rând sau o coloană trebuie să le aibă pentru a evita eliminarea; nu poate fi combinat cu how opțional
subset Specifică rândurile sau coloanele care trebuie considerate opțional
inplace Determină dacă operațiunea este efectuată pe DataFrame original. False
ignore_index Dacă True, axa rămasă este etichetată de la 0 la n-1 False

Cum se utilizează pandas DataFrame.dropna()

Pandas dropna() este utilizat pentru curățarea datelor înainte de analizarea acestora. Eliminarea rândurilor sau coloanelor cu valori lipsă ajută la prevenirea erorilor în evaluările statistice. Deoarece valorile lipsă pot duce și la probleme cu vizualizarea datelor, utilizarea funcției este avantajoasă și la crearea de grafice și rapoarte.

Eliminarea rândurilor cu valori lipsă

În exemplul următor, vom analiza un DataFrame care conține valori NaN:

import pandas as pd
import numpy as np
# Creating a DataFrame with sample data
data = {
    'A': [1, 2, np.nan, 4],
    'B': [5, np.nan, np.nan, 8],
    'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)
python

DataFrame arată astfel:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
2  NaN  NaN  11
3  4.0  8.0  12

Apoi, vom aplica funcția pandas dropna():

## Remove all rows that contain at least one NaN value
df_cleaned = df.dropna()
print(df_cleaned)
python

Executarea codului de mai sus produce următorul rezultat:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Deoarece toate celelalte rânduri conțin valori NaN, rămân doar rândurile zero și trei.

Eliminarea coloanelor cu valori lipsă

În mod similar, puteți elimina coloanele cu valori lipsă setând parametrul axis la 1:

## Remove all columns that contain at least one NaN value
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
python

Coloana C este singura coloană care rămâne, deoarece este singura care nu conține valori NaN:

C
0   9
1  10
2  11
3  12

Utilizarea thresh

Dacă doriți să eliminați rândurile care conțin mai puțin de două valori non-NaN, puteți utiliza parametrul thresh:

## Only keeps rows that have 2 or more non-NaN values
df_thresh = df.dropna(thresh=2)
print(df_thresh)
python

Rularea codului produce următorul rezultat:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12

Rândul 1 nu este eliminat din rezultatul final deoarece conține 2 valori non-NaN (2,0 și 10).

Utilizarea subset

Parametrul subset vă permite să specificați coloanele în care programul trebuie să caute valorile lipsă. Numai rândurile care conțin valori lipsă în coloanele specificate vor fi eliminate.

## Removes all rows where column A contains a NaN value
df_subset = df.dropna(subset=['A'])
print(df_subset)
python

Aici, numai al doilea rând este eliminat. Valoarea NaN din primul rând este ignorată datorită parametrului subset, care ia în considerare numai coloana A:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12
Mergi la meniul principal