Kuidas puhastada andmeid pandas'es dropna() abil
Python pandas DataFrame.dropna() funktsiooni kasutatakse puuduvate väärtustega (NaN) ridade või veergude eemaldamiseks DataFrame’ist. See muudab selle eriti oluliseks andmete ettevalmistamisel ja puhastamisel.
Mis on pandas dropna() süntaks?
Funktsioon dropna() võtab vastu kuni viis parameetrit. Siin on selle süntaks:
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False, ignore_index=False)pythonOlulised parameetrid dropna() jaoks
Saate kasutada parameetreid, et mõjutada pandas DataFrame.dropna() funktsiooni käitumist. Siin on ülevaade kõige olulisematest parameetritest:
| Parameeter | Kirjeldus | Vaikimisi väärtus |
|---|---|---|
axis
|
Määrab, kas eemaldatakse 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 minimaalse arvu mitte-NaN väärtusi, mis peab olema reas või veerus, et vältida selle eemaldamist; ei saa kombineerida how.
|
valikuline |
subset
|
Määrab, milliseid ridu või veerge tuleks arvesse võtta. | valikuline |
inplace
|
Määrab, kas operatsioon viiakse läbi algsel andmestikul | False
|
ignore_index
|
Kui True, siis märgistatakse ülejäänud telg numbritega 0 kuni n-1.
|
False
|
Kuidas kasutada pandas DataFrame.dropna()
Pandas dropna() kasutatakse andmete puhastamiseks enne nende analüüsimist. Puuduvate väärtustega ridade või veergude eemaldamine aitab vältida statistiliste hinnangute moonutusi. Kuna puuduvad väärtused võivad põhjustada ka probleeme andmete visualiseerimisel, on selle funktsiooni kasutamine kasulik ka diagrammide ja aruannete koostamisel.
Puuduvate väärtustega ridade eemaldamine
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)pythonAndmestruktuur 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 12Järgmisena rakendame pandas dropna() funktsiooni:
## Remove all rows that contain at least one NaN value
df_cleaned = df.dropna()
print(df_cleaned)pythonEespool toodud koodi käivitamine annab järgmise tulemuse:
A B C
0 1.0 5.0 9
3 4.0 8.0 12Kuna kõik teised read sisaldavad NaN väärtusi, jäävad alles ainult null- ja kolmas rida.
Puuduvate väärtustega veergude eemaldamine
Samamoodi saate eemaldada puuduvate väärtustega veerud, seadistades parameetri axis väärtuseks 1:
## Remove all columns that contain at least one NaN value
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)pythonVeerg 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 12Kasutades thresh
Kui soovite eemaldada ridu, mis sisaldavad vähem kui kahte mitte-NaN väärtust, võite kasutada parameetrit thresh:
## Only keeps rows that have 2 or more non-NaN values
df_thresh = df.dropna(thresh=2)
print(df_thresh)pythonKoodi käivitamisel saadakse järgmine väljund:
A B C
0 1.0 5.0 9
1 2.0 NaN 10
3 4.0 8.0 12Rida 1 ei eemaldata väljundist, kuna see sisaldab 2 mitte-NaN väärtust (2,0 ja 10).
Kasutades subset
Parameeter subset võimaldab teil määrata veerud, millest programm peaks puuduvaid väärtusi otsima. Eemaldatakse ainult need read, mis sisaldavad 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)pythonSiin eemaldatakse ainult teine rida. Esimese rea NaN-väärtus jäetakse tähelepanuta alamhulgaparametri 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