Kako očistiti podatke v pandas z dropna()
Funkcija Python pandas DataFrame.dropna() se uporablja za odstranjevanje vseh vrstic ali stolpcev, ki vsebujejo manjkajoče vrednosti (NaN), iz DataFrame. To je še posebej pomembno za pripravo in čiščenje podatkov.
Kakšna je sintaksa za pandas dropna()?
Funkcija dropna() sprejme do pet parametrov. Tukaj je njena sintaksa:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)pythonPomembni parametri za dropna()
S parametri lahko vplivate na delovanje funkcije pandas DataFrame.dropna(). Tukaj je pregled najpomembnejših:
| Parameter | Opis | Privzeta vrednost |
|---|---|---|
axis
|
Določa, ali bodo odstranjene vrstice (0 ali index) ali stolpci (1 ali columns).
|
0 |
how
|
Določa, ali morajo biti vse (all) ali samo nekatere (any) vrednosti NaN.
|
any
|
thresh
|
Določa minimalno število vrednosti, ki niso NaN, ki jih mora imeti vrstica ali stolpec, da se ne odstrani; ni mogoče kombinirati z how
|
neobvezno |
subset
|
Določa, katere vrstice ali stolpce je treba upoštevati. | neobvezno |
inplace
|
Določa, ali se operacija izvede na izvirnem DataFrame | False
|
ignore_index
|
Če je True, se preostala os označi od 0 do n-1.
|
False
|
Kako uporabljati pandas DataFrame.dropna()
Pandas dropna() se uporablja za čiščenje podatkov pred njihovo analizo. Odstranjevanje vrstic ali stolpcev z manjkajočimi vrednostmi pomaga preprečiti pristranskost v statističnih ocenah. Ker lahko manjkajoče vrednosti povzročajo tudi težave pri vizualizaciji podatkov, je uporaba te funkcije koristna tudi pri ustvarjanju grafikonov in poročil.
Odstranjevanje vrstic z manjkajočimi vrednostmi
V naslednjem primeru si bomo ogledali DataFrame, ki vsebuje vrednosti 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 izgleda takole:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
2 NaN NaN 11
3 4.0 8.0 12Nato bomo uporabili funkcijo pandas dropna():
## Remove all rows that contain at least one NaN value
df_cleaned = df.dropna()
print(df_cleaned)pythonIzvedba zgornjega kode da naslednji rezultat:
A B C
0 1.0 5.0 9
3 4.0 8.0 12Ker vse druge vrstice vsebujejo vrednosti NaN, ostanejo le ničta in tretja vrstica.
Odstranjevanje stolpcev z manjkajočimi vrednostmi
Podobno lahko odstranite stolpce z manjkajočimi vrednostmi, tako da nastavite parameter axis na 1:
## Remove all columns that contain at least one NaN value
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)pythonStolpec C je edini stolpec, ki ostane, saj je edini, ki ne vsebuje vrednosti NaN:
C
0 9
1 10
2 11
3 12Uporaba thresh
Če želite odstraniti vrstice, ki vsebujejo manj kot dve vrednosti, ki niso NaN, lahko uporabite parameter thresh:
## Only keeps rows that have 2 or more non-NaN values
df_thresh = df.dropna(thresh=2)
print(df_thresh)pythonIzvedba kode da naslednji izpis:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12Vrstica 1 ni odstranjena iz izhoda, ker vsebuje 2 vrednosti, ki niso NaN (2,0 in 10).
Uporaba subset
Parameter subset omogoča določitev stolpcev, v katerih naj program poišče manjkajoče vrednosti. Odstranjene bodo samo vrstice, ki vsebujejo manjkajoče vrednosti v določenih stolpcih.
## Removes all rows where column A contains a NaN value
df_subset = df.dropna(subset=['A'])
print(df_subset)pythonTukaj je odstranjena samo druga vrstica. Vrednost NaN v prvi vrstici je prezrta zaradi parametra podskupine, ki upošteva samo stolpec A:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12