Python pandas DataFrame.dropna() funkcija naudojama pašalinti visas eilutes ar stul­pe­lius, kuriuose yra trūkstamų verčių (NaN), iš DataFrame. Tai ypač svarbu ruošiant ir valant duomenis.

Kokia yra pandas dropna() sintaksė?

dropna() funkcija priima iki penkių parametrų. Štai jos sintaksė:

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

Svarbūs pa­ra­met­rai dropna()

Pa­ra­met­rus galite naudoti, kad pa­veik­tu­mė­te pandas DataFrame.dropna() funkcijos veikimą. Čia pa­tei­kia­ma svar­biau­sių parametrų apžvalga:

Pa­ra­met­ras Aprašymas Nu­ma­ty­ta­sis vertė
axis Nustato, ar bus pa­ša­lin­tos eilutės (0 arba index) ar stul­pe­liai (1 arba columns) 0
how Nurodo, ar visos (all) ar tik kai kurios (any) reikšmės turi būti NaN. any
thresh Nurodo mažiausią ne NaN verčių skaičių, kurį turi turėti eilutė arba stulpelis, kad nebūtų pa­ša­lin­tas; negali būti derinamas su how pa­si­rink­ti­nai
subset Nurodo, kurios eilutės ar stul­pe­liai turėtų būti laikomi pa­si­rink­ti­nai
inplace Nustato, ar operacija atliekama su ori­gi­na­lia DataFrame False
ignore_index Jei True, likusi ašis pažymima nuo 0 iki n-1. False

Kaip naudoti pandas DataFrame.dropna()

Pandas dropna() nau­do­ja­mas duomenims valyti prieš juos ana­li­zuo­jant. Trūkstamų verčių eilučių ar stulpelių pa­ša­li­ni­mas padeda išvengti sta­tis­ti­nių vertinimų iš­krai­py­mų. Kadangi trūks­ta­mos vertės taip pat gali sukelti problemų vi­zu­a­li­zuo­jant duomenis, šią funkciją naudinga taikyti ir kuriant diagramas bei ata­skai­tas.

Eilučių su trūks­ta­mo­mis reikš­mė­mis pa­ša­li­ni­mas

Šiame pavyzdyje pa­žvelg­si­me į DataFrame, kuriame yra NaN reikšmės:

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

Duomenų rėmelis atrodo taip:

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

Toliau taikysime pandas dropna() funkciją:

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

Vykdant aukščiau pateiktą kodą gaunamas toks re­zul­ta­tas:

A    B  C
0  1.0  5.0  9
3  4.0  8.0 12

Kadangi visos kitos eilutės turi NaN reikšmes, lieka tik nulinė ir trečioji eilutės.

Stulpelių su trūks­ta­mo­mis reikš­mė­mis pa­ša­li­ni­mas

Panašiai, galite pašalinti stul­pe­lius su trūks­ta­mo­mis reikš­mė­mis, nu­sta­ty­da­mi parametrą axis į 1:

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

C stulpelis yra vie­nin­te­lis likęs stulpelis, nes jis yra vie­nin­te­lis, kuriame nėra NaN verčių:

C
0   9
1  10
2  11
3  12

Naudojant thresh

Jei norite pašalinti eilutes, kuriose yra mažiau nei dvi ne NaN reikšmės, galite naudoti parametrą thresh:

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

Vykdant kodą gaunamas toks re­zul­ta­tas:

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

1 eilutė nėra pašalinta iš išvesties, nes joje yra 2 ne NaN reikšmės (2,0 ir 10).

Naudojant subset

subset pa­ra­met­ras leidžia nurodyti stul­pe­lius, kuriuose programa turi ieškoti trūkstamų verčių. Bus pa­ša­lin­tos tik tos eilutės, kurių nu­ro­dy­tuo­se stul­pe­liuo­se yra trūkstamų verčių.

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

Čia pa­ša­li­na­ma tik antra eilutė. Pirmoje eilutėje esanti NaN reikšmė ig­no­ruo­ja­ma dėl parametro subset, kuris at­si­žvel­gia tik į A stulpelį:

A    B   C
0  1.0  5.0   9
1  2.0  NaN  10
3  4.0  8.0  12
Go to Main Menu