# Guia rápido sobre o método Pandas dropna()

A função `DataFrame.dropna()` da Biblioteca Python Pandas é utilizada para eliminar todas as linhas ou colunas de um DataFrame que contenham valores em falta (NaN). É, portanto, uma das principais ferramentas para a **preparação e limpeza de dados**.

## Sintaxe de `dropna()` em Pandas

A função `dropna()` do Pandas aceita **até cinco parâmetros** e a sua sintaxe básica é bastante simples:

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

### Parâmetros relevantes

O comportamento da função `DataFrame.dropna()` pode ser **influenciado pelos parâmetros** que lhe são passados. Os parâmetros mais importantes estão resumidos na tabela seguinte:

<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`) e colunas (1 ou `columns`) são eliminadas</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`how`</td>
      <td>Indica se todos os valores devem ser incluídos (`all`) ou apenas alguns valores NaN (`any`)</td>
      <td>`any`</td>
    </tr>
    <tr>
      <td>`tresh`</td>
      <td>Indica o número mínimo de valores não NaN que uma linha ou coluna deve ter para não ser eliminada. Não pode ser combinado com o parâmetro `how`</td>
      <td>opcional</td>
    </tr>
    <tr>
      <td>`subset`</td>
      <td>Determina quais linhas ou colunas devem ser consideradas</td>
      <td>opcional</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Decide se a operação é realizada no DataFrame original</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`ignore_index`</td>
      <td>Se for verdadeiro ou `True`, os eixos restantes serão rotulados de 0 a n-1</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## Como utilizar `DataFrame.dropna()`

O método Pandas é necessário para limpar os dados antes da análise, pois elimina linhas ou colunas com valores em falta. Isso ajuda a **evitar enviesamentos** ao realizar avaliações estatísticas. Além disso, **facilita a criação de gráficos** e relatórios, uma vez que a presença de valores em falta pode causar representações incorretas em alguns casos.

### Eliminar linhas com valores em falta

No código a seguir, analisamos um DataFrame que contém valores NaN:

```python
import pandas as pd
import numpy as np
# Creación de un DataFrame con datos de ejemplo
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)
```

O DataFrame tem a seguinte aparência:

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

Na etapa seguinte, utiliza-se o método `dropna()` do Pandas:

```python
## Eliminación de todas las filas que contienen al menos un valor NaN
df_cleaned = df.dropna()
print(df_cleaned)
```

Ao executar o código, obtém-se o seguinte resultado:

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

Apenas a linha zero e a linha três do DataFrame permanecem, uma vez que as restantes linhas continham valores NaN.

### Eliminação de colunas com valores em falta

A eliminação de colunas com valores em falta funciona de forma análoga ao primeiro exemplo. Neste caso, basta definir o parâmetro `axis` da função como 1:

```python
## Eliminación de todas las columnas que contienen al menos un valor NaN
df_cleaned_columns = df.dropna(axis=1)
print(df_cleaned_columns)
```

No resultado seguinte, podemos observar que apenas resta a coluna «C», porque é a única que não contém nenhum valor NaN:

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

### Utilização do parâmetro `thresh`

Se desejar eliminar apenas as linhas com menos de dois valores não NaN, pode utilizar o parâmetro `thresh`:

```python
## Eliminación de todas las filas con menos de dos valores no NaN
df_thresh = df.dropna(thresh=2)
print(df_thresh)
```

Depois de executarmos este código, a primeira linha também permanece, pois contém dois valores não NaN:

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

### Utilização do parâmetro `subset`

O parâmetro `subset` é utilizado para especificar em quais colunas serão procurados valores em falta. Apenas serão eliminadas as linhas que tiverem valores em falta nas colunas indicadas.

```python
## Eliminación de todas las filas que contienen un valor NaN en la columna “A”:
df_subset = df.dropna(subset=['A'])
print(df_subset)
```

Neste caso, apenas a segunda linha foi eliminada. O valor NaN na primeira linha foi ignorado, seguindo o parâmetro definido, porque a coluna «B» não estava incluída:

```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-pt/digitalguide/paginas-web/desenvolvimento-web/metodo-dropna-para-dataframes-do-pandas-em-python/](https://www.ionos.com/pt-pt/digitalguide/paginas-web/desenvolvimento-web/metodo-dropna-para-dataframes-do-pandas-em-python/) for AI/LLM consumption.