# Kā tīrīt datus pandās ar dropna()

Python pandas `DataFrame.dropna()` funkcija tiek izmantota, lai no DataFrame izdzēstu visas rindas vai kolonnas, kas satur trūkstošas vērtības (NaN). Tas padara to īpaši svarīgu **datu sagatavošanai un tīrīšanai**.

## Kāda ir pandas `dropna()` sintakse?

Funkcija `dropna()` pieņem **līdz pieciem parametriem**. Šeit ir tās sintakse:

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

### Svarīgi parametri `dropna()`

Jūs varat **izmantot parametrus, lai ietekmētu** pandas `DataFrame.dropna()` funkcijas **darbību**. Šeit ir pārskats par svarīgākajiem parametriem:

<table>
  <thead>
    <tr>
      <th><strong>Parametrs</strong></th>
      <th><strong>Apraksts</strong></th>
      <th><strong>Noklusējuma vērtība</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`axis`</td>
      <td>Nosaka, vai tiks noņemtas rindas (0 vai `index`) vai kolonnas (1 vai `columns`)</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`how`</td>
      <td>Norāda, vai visām (`all`) vai tikai dažām (`any`) vērtībām jābūt NaN</td>
      <td>`any`</td>
    </tr>
    <tr>
      <td>`thresh`</td>
      <td>Norāda minimālo ne-NaN vērtību skaitu, kas jābūt rindā vai kolonnā, lai tā netiktu izdzēsta; nevar apvienot ar `how`.</td>
      <td>neobligāts</td>
    </tr>
    <tr>
      <td>`subset`</td>
      <td>Norāda, kuras rindas vai kolonnas jāuzskata par</td>
      <td>fakultatīvas</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Nosaka, vai darbība tiek veikta ar sākotnējo DataFrame</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`ignore_index`</td>
      <td>Ja `True`, atlikusī ass tiek marķēta no 0 līdz n-1</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## Kā lietot pandas `DataFrame.dropna()`

Pandas `dropna()` tiek izmantots, lai attīrītu datus pirms to analīzes. Trūkstošo vērtību rindu vai kolonnu izņemšana palīdz **novērst** statistisko novērtējumu **neobjektivitāti**. Tā kā trūkstošās vērtības var radīt arī problēmas ar datu vizualizāciju, šīs funkcijas izmantošana ir **izdevīga** arī **diagrammu** un ziņojumu **izveidē**.

### Rindu ar trūkstošām vērtībām dzēšana

Šajā piemērā apskatīsim DataFrame, kas satur NaN vērtības:

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

DataFrame izskatās šādi:

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

Tālāk mēs piemērosim pandas `dropna()` funkciju:

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

Izpildot iepriekš minēto kodu, tiek iegūts šāds rezultāts:

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

Tā kā visas pārējās rindas satur NaN vērtības, paliek tikai nulles un trešā rinda.

### Trūkstošo vērtību kolonnu dzēšana

Līdzīgi varat noņemt kolonnu ar trūkstošām vērtībām, iestatot parametru `axis` uz 1:

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

Kolonna C ir vienīgā kolonna, kas paliek, jo tā ir vienīgā, kas nesatur NaN vērtības:

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

### Izmantojot `thresh`

Ja vēlaties izdzēst rindas, kurās ir mazāk nekā divas NaN vērtības, varat izmantot parametru `thresh`:

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

Koda izpildes rezultāts ir šāds:

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

1\. rinda netiek izņemta no izvades, jo tajā ir 2 vērtības, kas nav NaN (2,0 un 10).

### Izmantojot `subset`

`subset` parametrs ļauj norādīt kolonnes, kurās programmai jāmeklē trūkstošās vērtības. Tiks dzēstas tikai rindas, kurās norādītajās kolonās ir trūkstošas vērtības.

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

Šeit tiek izņemta tikai otrā rinda. NaN vērtība pirmajā rindā tiek ignorēta, jo parametrs subset ņem vērā tikai A kolonnu:

```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/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-pandas-dataframe-dropna/](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-pandas-dataframe-dropna/) for AI/LLM consumption.