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:
df.iterrows()
pythonEn 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:
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)
pythonEl 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:
# 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}")
pythonEn 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:
# 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}")
pythonEn 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.