# Guía rápida sobre el método Pandas dropna()

La función `DataFrame.dropna()` de la [Biblioteca Python Pandas](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-pandas/) se utiliza para eliminar todas las filas o columnas de un DataFrame que contengan valores que faltan (NaN). Es, por tanto, una de las principales herramientas para la **preparación y limpieza de datos**.

## Sintaxis de `dropna()` en Pandas

La función `dropna()` de Pandas acepta **hasta cinco parámetros** y su sintaxis básica es bastante simple:

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

### Parámetros relevantes

El comportamiento de la función `DataFrame.dropna()` puede verse **influenciado por los parámetros** que se le pasan. Los parámetros más importantes se resumen en la siguiente tabla:

<table>
  <thead>
    <tr>
      <th><strong>Parámetro</strong></th>
      <th><strong>Descripción</strong></th>
      <th><strong>Valor por defecto</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>`axis`</td>
      <td>Determina si se eliminas filas (0 o `index`) columnas (1 o `columns`)</td>
      <td>0</td>
    </tr>
    <tr>
      <td>`how`</td>
      <td>Indica si deben incluirse todos los valores (`all`) o solamente algunos valores NaN (`any`)</td>
      <td>`any`</td>
    </tr>
    <tr>
      <td>`tresh`</td>
      <td>Indica el número mínimo de valores no NaN que una fila o columna debe tener para que no se elimine. No se puede combinar con el parámetro `how`</td>
      <td>opcional</td>
    </tr>
    <tr>
      <td>`subset`</td>
      <td>Determina qué filas o columnas deben ser consideradas</td>
      <td>opcional</td>
    </tr>
    <tr>
      <td>`inplace`</td>
      <td>Decide si la operación se realiza en el DataFrame original</td>
      <td>`False`</td>
    </tr>
    <tr>
      <td>`ignore_index`</td>
      <td>Si es verdadero o `True`, los ejes restantes se etiquetarán de 0 a n-1</td>
      <td>`False`</td>
    </tr>
  </tbody>
</table>

## Cómo utilizar `DataFrame.dropna()`

El método de Pandas es necesario para limpiar los datos antes del análisis, ya que elimina filas o columnas con valores faltantes. Esto nos ayuda a **evitar sesgos** a la hora de realizar evaluaciones estadísticas. Además, **facilita la creación de gráficos** e informes, dado que la presencia de valores faltantes puede provocar representaciones incorrectas en algunos casos.

### Eliminar filas con valores faltantes

En el siguiente código analizamos un DataFrame que contiene 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)
```

El DataFrame tiene este aspecto:

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

En el siguiente paso se usa el método `dropna()` de Pandas:

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

Al ejecutar el código se produce el siguiente resultado:

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

Solo permanecen la fila cero y la fila tres del DataFrame, ya que el resto de las filas contenían valores NaN.

### Eliminación de columnas con valores faltantes

La eliminación de columnas con valores faltantes funciona de forma análoga al primer ejemplo. En este caso, solo es necesario establecer el parámetro `axis` de la función en 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)
```

En el siguiente resultado podemos observar que solo queda la columna “C”, porque es la única que no contiene ningún valor NaN:

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

### Uso del parámetro `thresh`

Si solo deseas eliminar las filas que tengan menos de dos valores no NaN, puedes utilizar el 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)
```

Una vez que ejecutamos este código, también permanece la primera fila, ya que contiene dos valores no NaN:

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

### Uso del parámetro `subset`

El parámetro `subset` se utiliza para especificar en qué columnas se buscarán valores faltantes. Solo se eliminarán las filas que tengan valores faltantes en las columnas que se hayan indicado.

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

En este caso, solo se ha eliminado la segunda fila. El valor NaN en la primera fila se ha ignorado siguiendo el parámetro establecido, porque la columna “B” no estaba incluida:

```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.es/digitalguide/paginas-web/desarrollo-web/python-pandas-dataframe-dropna/](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-pandas-dataframe-dropna/) for AI/LLM consumption.