# 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:

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

### Olulised parameetrid `dropna()` jaoks

Saate **kasutada parameetreid, et mõjutada** pandas `DataFrame.dropna()` funktsiooni **käitumist**. Siin on ülevaade kõige olulisematest parameetritest:

<table>
  <thead>
    <tr>
      <th><strong>Parameeter</strong></th>
      <th><strong>Kirjeldus</strong></th>
      <th><strong>Vaikimisi väärtus</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`axis`</td>
      <td>Määrab, kas eemaldatakse read (0 või `index`) või veerud (1 või `columns`)</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`how`</td>
      <td>Määrab, kas kõik (`all`) või ainult mõned (`any`) väärtused peavad olema NaN.</td>
      <td>`any`</td>
    </tr>
    <tr>
      <td>`thresh`</td>
      <td>Määrab minimaalse arvu mitte-NaN väärtusi, mis peab olema reas või veerus, et vältida selle eemaldamist; ei saa kombineerida `how`.</td>
      <td>valikuline</td>
    </tr>
    <tr>
      <td>`subset`</td>
      <td>Määrab, milliseid ridu või veerge tuleks arvesse võtta.</td>
      <td>valikuline</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Määrab, kas operatsioon viiakse läbi algsel andmestikul</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`ignore_index`</td>
      <td>Kui `True`, siis märgistatakse ülejäänud telg numbritega 0 kuni n-1.</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## 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:

```python
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)
```

Andmestruktuur näeb välja järgmine:

```none
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ärgmisena rakendame pandas `dropna()` funktsiooni:

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

Eespool toodud koodi käivitamine annab järgmise tulemuse:

```none
A    B  C
0  1.0  5.0  9
3  4.0  8.0 12
```

Kuna 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:

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

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

```none
C
0   9
1  10
2  11
3  12
```

### Kasutades `thresh`

Kui soovite eemaldada ridu, mis sisaldavad vähem kui kahte mitte-NaN väärtust, võite kasutada parameetrit `thresh`:

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

Koodi käivitamisel saadakse järgmine väljund:

```none
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ä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.

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

Siin eemaldatakse ainult teine rida. Esimese rea NaN-väärtus jäetakse tähelepanuta alamhulgaparametri tõttu, mis võtab arvesse ainult veergu A:

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


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/python-pandas-dataframe-dropna/](https://www.ionos.com/et-ee/digitalguide/veebisaidid/veebiarendus/python-pandas-dataframe-dropna/) for AI/LLM consumption.