Python pandas DataFrame.dropna() funkt­siooni ka­su­ta­takse puuduvate väär­tus­tega (NaN) ridade või veergude eemal­da­miseks DataFrame’ist. See muudab selle eriti oluliseks andmete et­te­val­mis­ta­misel ja pu­has­ta­misel.

Mis on pandas dropna() süntaks?

Funkt­sioon dropna() võtab vastu kuni viis pa­ra­meet­rit. Siin on selle süntaks:

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

Olulised pa­ra­meet­rid dropna() jaoks

Saate kasutada pa­ra­meetreid, et mõjutada pandas DataFrame.dropna() funkt­siooni käitumist. Siin on ülevaade kõige olu­li­se­ma­test pa­ra­meet­ri­test:

Pa­ra­mee­ter Kirjeldus Vaikimisi väärtus
axis Määrab, kas eemal­da­takse read (0 või index) või veerud (1 või columns) 0
how Määrab, kas kõik (all) või ainult mõned (any) väärtused peavad olema NaN. any
thresh Määrab mi­ni­maalse arvu mitte-NaN väärtusi, mis peab olema reas või veerus, et vältida selle eemal­da­mist; ei saa kom­bi­nee­rida how. va­li­ku­line
subset Määrab, milliseid ridu või veerge tuleks arvesse võtta. va­li­ku­line
inplace Määrab, kas ope­rat­sioon viiakse läbi algsel and­mes­ti­kul False
ignore_index Kui True, siis mär­gis­ta­takse ülejäänud telg numb­ri­tega 0 kuni n-1. False

Kuidas kasutada pandas DataFrame.dropna()

Pandas dropna() ka­su­ta­takse andmete pu­has­ta­miseks enne nende ana­lüü­si­mist. Puuduvate väär­tus­tega ridade või veergude eemal­da­mine aitab vältida sta­tis­ti­liste hin­nan­gute moonutusi. Kuna puuduvad väärtused võivad põh­jus­tada ka probleeme andmete vi­sua­li­see­ri­misel, on selle funkt­siooni ka­su­ta­mine kasulik ka diag­rammide ja aruannete koos­ta­misel.

Puuduvate väär­tus­tega ridade eemal­da­mine

Järgmises näites vaatame DataFrame’i, mis sisaldab NaN-väärtusi:

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

And­me­st­ruk­tuur näeb välja järgmine:

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

Järg­misena rakendame pandas dropna() funkt­siooni:

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

Eespool toodud koodi käi­vi­ta­mine annab järgmise tulemuse:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Kuna kõik teised read si­sal­da­vad NaN väärtusi, jäävad alles ainult null- ja kolmas rida.

Puuduvate väär­tus­tega veergude eemal­da­mine

Samamoodi saate eemaldada puuduvate väär­tus­tega veerud, sea­dis­ta­des pa­ra­meetri axis väär­tu­seks 1:

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

Veerg C on ainus veerg, mis jääb alles, kuna see on ainus, mis ei sisalda NaN väärtusi:

C
0   9
1  10
2  11
3  12

Kasutades thresh

Kui soovite eemaldada ridu, mis si­sal­da­vad vähem kui kahte mitte-NaN väärtust, võite kasutada pa­ra­meet­rit thresh:

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

Koodi käi­vi­ta­misel saadakse järgmine väljund:

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

Rida 1 ei eemaldata väl­jun­dist, kuna see sisaldab 2 mitte-NaN väärtust (2,0 ja 10).

Kasutades subset

Pa­ra­mee­ter subset võimaldab teil määrata veerud, millest programm peaks puuduvaid väärtusi otsima. Eemal­da­takse ainult need read, mis si­sal­da­vad puuduvaid väärtusi määratud veergudes.

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

Siin eemal­da­takse ainult teine rida. Esimese rea NaN-väärtus jäetakse tä­he­le­pa­nuta alam­hul­ga­pa­ra­metri tõttu, mis võtab arvesse ainult veergu 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