# Iterar sobre DataFrames con Pandas itterows()

Puedes usar la función `DataFrame.iterrows()` de la [Biblioteca Python Pandas](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-pandas/) para iterar sobre las **filas de los [DataFrames de Pandas](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/dataframes-de-pandas-python/)**. Esta función devuelve para cada fila una [tupla de Python](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-tuples/) compuesta por un índice y una serie que contiene los datos de la fila correspondiente.

## Sintaxis de Pandas `iterrows()`

La sintaxis básica de Pandas `DataFrame.iterrows()` es sencilla, ya que esta función **no acepta ningún parámetro**:

```python
df.iterrows()
```

En el código anterior, `df` se refiere al DataFrame sobre el cual se desea iterar.

## Cómo utilizar la función Pandas `iterrows()`

La función `DataFrame.iterrows()` se utiliza normalmente cuando se necesita **procesar datos fila a fila**. Por eso, se combina a menudo con [bucle for en Python](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/bucle-for-en-python/).

### Sumar los valores de una columna

A continuación, usamos un DataFrame de ejemplo que tiene las columnas *Nombre*, *Edad* y *Puntuación*:

```python
import pandas as pd
# Crear un DataFrame de ejemplo
data = {'Nombre': ['Ana', 'Teo', 'Clara'],
    'Edad': [23, 35, 29],
    'Puntuación': [88, 92, 85]}
df = pd.DataFrame(data)
print(df)
```

El código anterior genera el siguiente DataFrame:

```none
Nombre  Edad  Puntuación
0    Ana     23         88
1    Teo     35         92
2  Clara     29         85
```

Ahora, podemos utilizar la función Pandas `DataFrame.iterrows()` para calcular la suma de las puntuaciones:

```python
# Calcular la suma de las puntuaciones
total_score = 0
for index, row in df.iterrows():
    total_score += row['Puntuación']
print(f"La suma total de las puntuaciones es: {total_score}")
```

En este ejemplo, se ha usado la función `iterrows()` de Pandas para iterar sobre las filas y sumar sucesivamente los valores presentes en la columna *Puntuación*. El resultado es el siguiente:

```none
La suma total de las puntuaciones es: 265
```

Nota Cuando trabajas con Pandas `iterrows()`, debes asegurarte de **no modificar nunca directamente** los datos sobre los que estás iterando. Si lo haces, es posible que los datos generados no sean los esperados y podrían producirse errores imprevistos.

### Aplicar condiciones a filas individuales

La función `iterrows()` también se puede utilizar para aplicar condiciones a filas individuales de un DataFrame. Imagina que quieres saber los nombres de todas las personas que tienen más de 30 años en el DataFrame que hemos usado anteriormente como ejemplo:

```python
# Obtener los nombres de las personas que tienen más de 30 años
names = []
for index, row in df.iterrows():
    if row['Edad'] > 30:
        names.append(row['Nombre'])
print(f"Personas mayores de 30 años: {names}")
```

En el código anterior, se itera sobre las filas del conjunto de datos utilizando `DataFrame.iterrows()` de Pandas. Dentro del bucle `for`, se evalúan los valores de la columna *Edad* para almacenar en la [lista de Python](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-list/) `names` solamente los nombres de las personas mayores de 30 años. Para ello, se utiliza la [función `append()` de Python](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/python-append/). El resultado que se obtiene es el siguiente:

```none
Personas mayores de 30 años: ['Teo']
```

Nota Aunque la función `DataFrames.iterrows()` de Pandas es fácil de usar, debe utilizarse con cuidado debido a que es **potencialmente menos eficiente en DataFrames grandes**. En muchos casos, existen alternativas más apropiadas, como `apply()` o el cálculo vectorizado de Pandas.


This is a markdown version of: [https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/pandas-dataframe-itterows-en-python/](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/pandas-dataframe-itterows-en-python/) for AI/LLM consumption.