Funkcija Python pandas DataFrame.dropna() se uporablja za od­stra­nje­va­nje vseh vrstic ali stolpcev, ki vsebujejo manj­ka­jo­č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 pa­ra­me­trov. Tukaj je njena sintaksa:

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

Pomembni parametri za dropna()

S parametri lahko vplivate na delovanje funkcije pandas DataFrame.dropna(). Tukaj je pregled naj­po­memb­nej­ših:

Parameter Opis Privzeta vrednost
axis Določa, ali bodo od­stra­nje­ne 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 kom­bi­ni­ra­ti z how neobvezno
subset Določa, katere vrstice ali stolpce je treba upo­šte­va­ti. 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 upo­ra­blja­ti pandas DataFrame.dropna()

Pandas dropna() se uporablja za čiščenje podatkov pred njihovo analizo. Od­stra­nje­va­nje vrstic ali stolpcev z manj­ka­jo­či­mi vre­dnost­mi pomaga pre­pre­či­ti pri­stran­skost v sta­ti­stič­nih ocenah. Ker lahko manj­ka­jo­če vrednosti pov­zro­ča­jo tudi težave pri vi­zu­a­li­za­ci­ji podatkov, je uporaba te funkcije koristna tudi pri ustvar­ja­nju gra­fi­ko­nov in poročil.

Od­stra­nje­va­nje vrstic z manj­ka­jo­či­mi vre­dnost­mi

V na­sle­dnjem 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)
python

DataFrame 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  12

Nato bomo uporabili funkcijo pandas dropna():

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

Izvedba zgornjega kode da naslednji rezultat:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Ker vse druge vrstice vsebujejo vrednosti NaN, ostanejo le ničta in tretja vrstica.

Od­stra­nje­va­nje stolpcev z manj­ka­jo­či­mi vre­dnost­mi

Podobno lahko od­stra­ni­te stolpce z manj­ka­jo­či­mi vre­dnost­mi, 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)
python

Stolpec C je edini stolpec, ki ostane, saj je edini, ki ne vsebuje vrednosti NaN:

C
0   9
1  10
2  11
3  12

Uporaba thresh

Če želite od­stra­ni­ti 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)
python

Izvedba kode da naslednji izpis:

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

Vrstica 1 ni od­stra­nje­na 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 manj­ka­jo­če vrednosti. Od­stra­nje­ne bodo samo vrstice, ki vsebujejo manj­ka­jo­č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)
python

Tukaj je od­stra­nje­na samo druga vrstica. Vrednost NaN v prvi vrstici je prezrta zaradi parametra pod­sku­pi­ne, 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
Go to Main Menu