Iterar a través de filas de pandas DataFrame en Python (4 ejemplos)

Se el primero en calificar

En esta publicación, aprenderá cómo recorrer las filas de un DataFrame de pandas en el lenguaje de programación Python .

El tutorial constará del siguiente contenido:

Tenga en cuenta que los bucles en Python son un tema muy controvertido.

Una de las principales desventajas de las iteraciones en Python es la velocidad y la eficiencia del código. En caso de que se trate de grandes conjuntos de datos, los bucles pueden ser muy lentos.

Por otro lado, los bucles pueden ser más intuitivos para algunos usuarios que las opciones alternativas y, en muchas situaciones, la velocidad no importará.

En este tutorial, no discutiré las ventajas y desventajas de los bucles en Python con más detalle.

Sin embargo, en caso de que esté interesado en leer más sobre los pros y los contras de los bucles, le recomiendo que eche un vistazo a este excelente hilo sobre Stack Overflow .

De todos modos, estás aquí por el código de Python, así que vayamos directamente al tutorial…

Ejemplos de datos y bibliotecas

Primero, necesitamos importar la biblioteca de pandas :

importar pandas como pd                        # Cargar pandas

También tendremos que crear algunos Pandas DataFrame a modo de ejemplo.

datos = pd. DataFrame ( { 'x1' : range ( 1 ,  5 ) ,     # Create pandas DataFrame 
                     'x2' : [ 'a' ,  'b' ,  'c' ,  'd' ] } ) 
print ( data )                                # Print pandas DataFrame

tabla 1 DataFrame iterar a través de filas pandas dataframe python

La Tabla 1 muestra la estructura de nuestros datos de ejemplo: consta de cuatro puntos de datos y dos columnas.

Ejemplo 1: bucle sobre filas de pandas DataFrame usando la función iterrows()

El siguiente código de Python demuestra cómo usar la función iterrows para iterar a través de las filas de un DataFrame de pandas en Python.

Para esta tarea, podemos usar la sintaxis de Python que se muestra a continuación.

En la primera línea de esta sintaxis, especificamos un índice en ejecución (es decir, i), que queremos recorrer en bucle sobre las filas de nuestro conjunto de datos y el nombre de nuestro conjunto de datos (es decir, datos).

En la segunda línea del siguiente código, especificamos alguna salida que debe crearse dentro de las iteraciones de nuestro ciclo for (es decir, queremos imprimir alguna información sobre los valores en cada fila).

Hagámoslo:

para i , fila en datos. iterrows ( ) :             # Usar iterrows para imprimir la salida 
    print ( 'Índice' , i ,  '; x1 =' , fila [ 'x1' ] ,  ';' ,  'x2 =' , fila [ 'x2' ] ) 
# Índice 0 ; x1 = 1 ; x2 = a 
# Índice 1 ; x1 = 2; x2 = b 
# Índice 2 ; x1 = 3; x2 = c 
# Índice 3 ; x1 = 4; x2 = re

Como puede ver, el bucle for anterior ha creado una línea de salida para cada fila de nuestro DataFrame de pandas.

Ejemplo 2: realizar cálculos por fila dentro del bucle for

En el Ejemplo 1 de este tutorial, hemos usado la función iterrows para imprimir información sobre nuestro conjunto de datos.

En este ejemplo, ilustraré cómo realizar un cálculo basado en los valores de cada fila.

Más precisamente, multiplicaremos el valor en la columna x1 por cinco:

para i , fila en datos. iterrows ( ) :             # Use iterrows para calcular por 
    impresión de fila ( fila [ 'x1' ] * 5 ) 
# 5 
# 10 
# 15 
# 20

El resultado anterior muestra los valores de nuestra primera columna multiplicados por el valor cinco.

Ejemplo 3: manipulación de la lista dentro del bucle for

En este ejemplo, mostraré cómo cambiar los valores almacenados en una lista iterando sobre las filas de un marco de datos de pandas.

Para este ejemplo, primero tenemos que crear un objeto de lista vacío:

my_list =  [ ]                               # Crear lista vacía 
print ( my_list )                             # Imprimir lista 
# []

En el siguiente paso, podemos modificar esta lista recorriendo las filas de nuestros datos como se muestra a continuación:

para i , fila en datos. iterrows ( ) :             # Usar iterrows para modificar la lista 
    my_list = my_list + [ fila [ 'x1' ] * 10 ]

Imprimamos nuestro objeto de lista una vez más:

print ( my_list )                             # Imprimir lista actualizada 
# [10, 20, 30, 40]

Como puede ver, hemos actualizado nuestra lista para que ahora contenga los valores en la columna x1 por diez.

Ejemplo 4: bucle sobre filas de pandas DataFrame usando la función itertuples()

En los ejemplos anteriores, hemos utilizado la función iterrows para recorrer las filas de un DataFrame de pandas. Sin embargo, el lenguaje de programación Python proporciona otras alternativas para la iteración sobre las filas de DataFrame.

El siguiente código de Python ilustra cómo usar la función itertuples en lugar de la función iterrows. Para ser precisos, estamos reproduciendo el resultado del Ejemplo 1 ejecutando el siguiente código de Python:

para fila en datos. itertuples ( ) :              # Use itertuples en lugar de iterrows 
    print ( 'Índice' , i ,  '; x1 =' , fila. x1 ,  ';' ,  'x2 =' , fila. x2 ) 
# Índice 3 ; x1 = 1 ; x2 = a 
# Índice 3 ; x1 = 2; x2 = b 
# Índice 3 ; x1 = 3; x2 = c 
# Índice 3 ; x1 = 4; x2 = re

Tenga en cuenta que tuvimos que seleccionar nuestros valores de columna usando un punto en lugar de corchetes (es decir, fila.x1 y fila.x2).

Video, recursos adicionales y resumen

¿Necesita más información sobre los temas de este tutorial? Entonces podría ver el siguiente video en el canal de YouTube de Estadisticool. Explico los códigos de programación en Python de este post en el videotutorial:

Además, es posible que desee leer los otros tutoriales en mi página de inicio:

Resumen: este artículo ha demostrado cómo iterar y enumerar las filas de un marco de datos de pandas en el lenguaje de programación Python. Si tiene comentarios o preguntas adicionales, hágamelo saber en la sección de comentarios.

Alejandro Lugon Administrator

Alejandro Lugón es un economista y escritor especializado en Python y R, conocido por ser el creador del blog Estadisticool. Nacido enxico, Lugón se graduó de la Universidad Autónoma dexico con una Licenciatura en Economía. Desde entonces ha trabajado como economista en varias empresas. Lugón también ha escrito varios libros sobre temas relacionados con la economía, el análisis de datos y la programación. Su blog Estadisticool se ha convertido en un lugar de referencia para los programadores de Python y R. Alejandro Lugón es una inspiración para aquellos que buscan aprender programación y análisis de datos. Su trabajo ha ayudado a muchas personas a entender mejor el uso de la tecnología para hacer sus trabajos.

¿ Sus datos contienen valores NA, <NA> o NaN ? Ese no es el fin del mundo, ¡pero sus campanas…