Iterar sobre DataFrames con Pandas itterows()
Puedes usar la función DataFrame.iterrows()
de la Biblioteca Python Pandas para iterar sobre las filas de los DataFrames 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 correspondiente.
- Rápido, seguro, flexible y escalable
- Certificado SSL/DDoS incluido
- Dominio y asesor personal incluidos
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:
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.
Sumar los valores de una columna
A continuación, usamos un DataFrame de ejemplo que tiene las columnas Nombre, Edad y Puntuación:
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 puntuaciones:
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:
La suma total de las puntuaciones es: 265
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:
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 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']
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.