Cum să curățați datele în pandas cu dropna()
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)pythonParametri 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)pythonDataFrame 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 12Apoi, vom aplica funcția pandas dropna():
## Remove all rows that contain at least one NaN value
df_cleaned = df.dropna()
print(df_cleaned)pythonExecutarea codului de mai sus produce următorul rezultat:
A B C
0 1.0 5.0 9
3 4.0 8.0 12Deoarece 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)pythonColoana 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 12Utilizarea 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)pythonRularea codului produce următorul rezultat:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12Râ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)pythonAici, 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