Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

500
Views
la mejor manera de iterar a través de elementos de la serie pandas

Todo lo siguiente parece estar funcionando para iterar a través de los elementos de una serie de pandas. Estoy seguro de que hay más formas de hacerlo. ¿Cuáles son las diferencias y cuál es la mejor manera?

 import pandas arr = pandas.Series([1, 1, 1, 2, 2, 2, 3, 3]) # 1 for el in arr: print(el) # 2 for _, el in arr.iteritems(): print(el) # 3 for el in arr.array: print(el) # 4 for el in arr.values: print(el) # 5 for i in range(len(arr)): print(arr.iloc[i])
over 4 years ago · Santiago Trujillo
5 answers
Answer question

0

Usar items :

 for i, v in arr.items(): print(f'index: {i} and value: {v}')

Producción:

 index: 0 and value: 1 index: 1 and value: 1 index: 2 and value: 1 index: 3 and value: 2 index: 4 and value: 2 index: 5 and value: 2 index: 6 and value: 3 index: 7 and value: 3
over 4 years ago · Santiago Trujillo Report

0

Los resultados de la prueba son los siguientes: la velocidad de ejecución del bucle es la más lenta. Iterrows () está optimizado para el marco de datos de pandas, que se mejora significativamente en comparación con el bucle directo. El método apply () también realiza un bucle entre filas, pero es mucho más eficiente que iterrows debido a una serie de optimizaciones globales que utilizan iteradores como python. La vectorización de matrices numpy se ejecuta más rápido, seguida de la vectorización de series pandas. Dado que la vectorización funciona en toda la secuencia al mismo tiempo, puede ahorrar más tiempo. Numpy utiliza código C precompilado para optimizar en la parte inferior y evita muchos gastos generales en el funcionamiento de la serie pandas. Por lo tanto, la operación de las matrices numpy es mucho más rápida que la de las series pandas.

 loop: 1.80301690102 iterrows: 0.724927186966 apply: 0.645957946777 pandas series: 0.333024024963 numpy array: 0.260366916656

bucle de la lista> matriz numpy> serie pandas> aplicar> iterrows

over 4 years ago · Santiago Trujillo Report

0

Formas de iterar a través de pandas/python

 arr = pandas.Series([1, 1, 1, 2, 2, 2, 3, 3]) #Using Python range() method for i in range(len(arr)): print(arr[i])

el rango no incluye el valor final en la secuencia

 #List Comprehension print([arr[i] for i in range(len(arr))])

La comprensión de listas puede funcionar y puede identificar si la entrada es una lista, una cadena o una tupla

 #Using Python enumerate() method for el,j in enumerate(arr): print(j) #Using Python NumPy module import numpy as np print(np.arange(len(arr))) for i,j in np.ndenumerate(arr): print(j)

enumerate es muy utilizado ya que enumerate agrega un contador a la lista o cualquier otro iterable y lo devuelve como un objeto enumerate por la función. Reduce la sobrecarga de mantener un recuento de los elementos durante la operación de iteración. No necesitarías un contador aquí. Podría usar np.ndenumerate() para imitar el comportamiento de enumerate para matrices numpy. Para listas n-dimensionales muy grandes, es recomendable usar numpy.

También usas bucle for tradicional y también un bucle while

 x=0 while x<len(arr): print(arr[x]) x +=1 #Using lambda function list(map(lambda x:x, arr))

lambda reduce las líneas de código y se puede usar junto con el filtro lateral, reducir o mapear.

Si desea iterar a través de las filas del marco de datos en lugar de la serie, podríamos usar iterrows, itertuple e iteritems. La mejor manera en términos de memoria y computación es usar las columnas como vectores y realizar cálculos vectoriales usando matrices numpy. Los bucles son muy caros cuando se trata de bigdata. Es más fácil y rápido cuando los conviertes en matrices numpy y trabajas en ello.

over 4 years ago · Santiago Trujillo Report

0

Para la programación de vectores (pandas, R, octava, ..), se recomienda no iterar sobre vectores. En su lugar, utilice la función de mapeo proporcionada por la biblioteca para aplicar sobre una serie o conjunto de datos.

En su caso de aplicar la función de impresión a cada elemento, el código sería simplemente:

 import pandas arr = pandas.Series([1, 1, 1, 2, 2, 2, 3, 3]) arr.apply(print)
over 4 years ago · Santiago Trujillo Report

0

Creo que lo más importante es comprender el requisito sobre los cosméticos mientras busca una solución para un requisito individual.

En mi opinión, no cuesta demasiado hasta que los datos en los que estamos trabajando son enormes, donde tenemos que ser selectivos en nuestro enfoque y descansar para conjuntos de datos pequeños, cualquiera de los dos enfoques estará bien, como se menciona a continuación.

Hay una buena explicación en PEP 469 , PEP 3106 y Vistas e iteradores en lugar de listas

En Python 3, solo hay un método llamado elementos(). Utiliza iteradores por lo que es rápido y permite recorrer el diccionario mientras se edita. Tenga en cuenta que el método iteritems() se eliminó de Python 3.

Se puede echar un vistazo a Python3 Wiki Built-In_Changes para obtener más detalles al respecto.

 arr = pandas.Series([1, 1, 1, 2, 2, 2, 3, 3]) $ for index, value in arr.items(): print(f"Index : {index}, Value : {value}") Index : 0, Value : 1 Index : 1, Value : 1 Index : 2, Value : 1 Index : 3, Value : 2 Index : 4, Value : 2 Index : 5, Value : 2 Index : 6, Value : 3 Index : 7, Value : 3 $ for index, value in arr.iteritems(): print(f"Index : {index}, Value : {value}") Index : 0, Value : 1 Index : 1, Value : 1 Index : 2, Value : 1 Index : 3, Value : 2 Index : 4, Value : 2 Index : 5, Value : 2 Index : 6, Value : 3 Index : 7, Value : 3 $ for _, value in arr.iteritems(): print(f"Index : {index}, Value : {value}") Index : 7, Value : 1 Index : 7, Value : 1 Index : 7, Value : 1 Index : 7, Value : 2 Index : 7, Value : 2 Index : 7, Value : 2 Index : 7, Value : 3 Index : 7, Value : 3 $ for i, v in enumerate(arr): print(f"Index : {i}, Value : {v}") Index : 0, Value : 1 Index : 1, Value : 1 Index : 2, Value : 1 Index : 3, Value : 2 Index : 4, Value : 2 Index : 5, Value : 2 Index : 6, Value : 3 Index : 7, Value : 3 $ for value in arr: print(value) 1 1 1 2 2 2 3 3 $ for value in arr.tolist(): print(value) 1 1 1 2 2 2 3 3

Hay una buena publicación sobre cómo iterar filas en un DataFrame en Pandas , aunque dice df pero explica todo sobre item() , iteritems() etc.

Otra buena discusión sobre elementos SO e iteritems .

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!