Puedes usar la función DataFrame.iterrows() de la Bi­blio­te­ca Python Pandas para iterar sobre las filas de los Da­ta­Fra­mes de Pandas. Esta función devuelve para cada fila una tupla de Python compuesta por un índice y una serie que contiene los datos de la fila co­rre­s­po­n­die­n­te.

Web Hosting
El hosting que crece con tu proyecto
  • Tiempo de actividad de 99.99 % y seguridad ga­ra­n­ti­za­da
  • Aumenta el re­n­di­mie­n­to según el tráfico de tu página web
  • Incluye dominio, SSL, e-mail y soporte 24/7

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:

df.iterrows()
python

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 no­r­ma­l­me­n­te cuando se necesita procesar datos fila a fila. Por eso, se combina a menudo con bucle for en Python.

Sumar los valores de una columna

A co­n­ti­nua­ción, usamos un DataFrame de ejemplo que tiene las columnas Nombre, Edad y Pu­n­tua­ción:

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

El código anterior genera el siguiente DataFrame:

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 pu­n­tua­cio­nes:

# 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}")
python

En este ejemplo, se ha usado la función iterrows() de Pandas para iterar sobre las filas y sumar su­ce­si­va­me­n­te los valores presentes en la columna Pu­n­tua­ción. El resultado es el siguiente:

La suma total de las puntuaciones es: 265
Nota

Cuando trabajas con Pandas iterrows(), debes ase­gu­rar­te de no modificar nunca di­re­c­ta­me­n­te los datos sobre los que estás iterando. Si lo haces, es posible que los datos generados no sean los esperados y podrían pro­du­ci­r­se errores im­pre­vi­s­tos.

Aplicar co­n­di­cio­nes a filas in­di­vi­dua­les

La función iterrows() también se puede utilizar para aplicar co­n­di­cio­nes a filas in­di­vi­dua­les 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 an­te­rio­r­me­n­te como ejemplo:

# 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}")
python

En el código anterior, se itera sobre las filas del conjunto de datos uti­li­za­n­do DataFrame.iterrows() de Pandas. Dentro del bucle for, se evalúan los valores de la columna Edad para almacenar en la lista de Python names solamente los nombres de las personas mayores de 30 años. Para ello, se utiliza la función append() de Python. El resultado que se obtiene es el siguiente:

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

Aunque la función DataFrames.iterrows() de Pandas es fácil de usar, debe uti­li­zar­se con cuidado debido a que es po­te­n­cia­l­me­n­te menos eficiente en Da­ta­Fra­mes grandes. En muchos casos, existen al­te­r­na­ti­vas más apro­pia­das, como apply() o el cálculo ve­c­to­ri­za­do de Pandas.

Ir al menú principal