# Como limpar dados com a função Pandas dropna()

A função `DataFrame.dropna()` do [Python Pandas](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-pandas/) é usada para remover todas as linhas ou colunas com valores ausentes (NaN) em um DataFrame. Isso a torna especialmente importante nos processos de **preparação e limpeza de dados**.

## Qual é a sintaxe da função Pandas `dropna()`?

A função Pandas `dropna()` aceita a inclusão de **até cinco parâmetros**. Esta é sua sintaxe:

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

### Parâmetros importantes da função Pandas `dropna()`

É possível **usar parâmetros para influenciar o comportamento** da função Pandas `DataFrame.dropna()`. Este é um resumo das opções mais importantes:

<table>
  <thead>
    <tr>
      <th><strong>Parâmetro</strong></th>
      <th><strong>Descrição</strong></th>
      <th><strong>Valor padrão</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`axis`</td>
      <td>Determina se as linhas (0 ou `index`) ou colunas (1 ou `columns`) serão removidas</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`how`</td>
      <td>Especifica se todos (`all`) ou alguns (`any`) valores devem ser NaN</td>
      <td>`any`</td>
    </tr>
    <tr>
      <td>`thresh`</td>
      <td>Especifica o número mínimo de valores que não são NaN que uma linha ou coluna deve ter para que eles não sejam removidos. Se especificado, o parâmetro `how` será ignorado</td>
      <td>optional</td>
    </tr>
    <tr>
      <td>`subset`</td>
      <td>Especifica quais linhas ou colunas devem ser levadas em consideração pela função</td>
      <td>optional</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Determina se a operação é executada no DataFrame original</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`ignore_index`</td>
      <td>Se verdadeiro (`True`), os eixos restantes são marcados de 0 a n-1</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## Como usar a função Pandas `DataFrame.dropna()`

A função Pandas `dropna()` é usada para limpar os dados antes de desempenhar uma análise. A remoção de linhas ou colunas com valores ausentes **previne a ocorrência de vieses** em avaliações estatísticas. Como os valores ausentes também podem gerar problemas de visualização de dados, o uso dessa função é **vantajoso para produzir gráficos** e relatórios.

### Remover linhas com valores ausentes

No exemplo abaixo, temos um DataFrame com valores NaN (não numéricos):

```python
import pandas as pd
import numpy as np
# Criar um DataFrame com dados de exemplo
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)
```

Este será o DataFrame resultante:

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

Em seguida, vamos aplicar a função Pandas `dropna()`:

```python
## Remover todas as linhas que contêm pelo menos um valor NaN
df_cleaned = df.dropna()
print(df_cleaned)
```

A execução do código acima produz este resultado:

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

Como as demais linhas continham valores NaN, apenas as linhas 0 e 3 foram exibidas.

### Remover colunas com valores ausentes

Também é possível remover as colunas com valores ausentes ao definir o parâmetro `axis` como 1:

```python
## Remover todas as colunas que contêm pelo menos um valor NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
```

A coluna C é a única que será exibida, pois não contém nenhum valor NaN:

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

### Usar o parâmetro `thresh`

Se quiser remover as linhas que contêm menos que dois valores que não são NaN, use o parâmetro `thresh`:

```python
## Manter apenas as linhas que têm 2 ou mais valores que não são NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)
```

A execução do código acima produz o seguinte resultado:

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

A linha 2 foi removida porque continha menos de dois valores que não são NaN.

### Usar o parâmetro `subset`

O parâmetro `subset` possibilita que você especifique as colunas nas quais a função deve procurar os valores ausentes. Somente linhas que contêm valores ausentes dentre as colunas especificadas serão removidas.

```python
## Remover todas as linhas em que a coluna A contém um valor NaN
df_subset = df.dropna(subset=['A'])
print(df_subset)
```

Nesse caso, somente a linha 2 foi removida. O valor NaN na linha 1 foi ignorado devido ao parâmetro `subset`, que levou em consideração somente a coluna 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/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-pandas-dataframe-dropna/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/python-pandas-dataframe-dropna/) for AI/LLM consumption.