Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

497
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda