Estoy tratando de encontrar una manera de obtener la fila de un marco de datos usando un índice que tenga el mismo resultado que usar data_file.iterrows (). Intenté el siguiente código, pero no son idénticos. ¿Hay alguna forma de hacer esto? ¡Gracias!

for row in data_file.iterrows():
    print(row == data_file.iloc[0])
    print(row)
    print(data_file.iloc[0])
    break
2
Cong Yang 17 feb. 2018 a las 01:41

2 respuestas

La mejor respuesta

El valor de la serie correspondiente está en index1, ¿eso ayuda?

Documentos: https://pandas.pydata.org/pandas- docs / stable / generate / pandas.DataFrame.iterrows.html

DataFrame.iterrows () [fuente]

Itere filas de DataFrame como pares (índice, Serie ).

print(row[1] == data_file.iloc[0])

Otra solución:

for ind, row in data_file.iterrows():
2
Anton vBR 16 feb. 2018 a las 23:06

Porque iterrows devuelve una tupla que consiste en el índice de la fila y la fila misma e iloc la fila.

print(type(row))
<class 'tuple'>
print(type(pl0.iloc[0]))  
<class 'pandas.core.series.Series'>
print(type(row[1]))
<class 'pandas.core.series.Series'>

Puedes usar la habilidad de Python para desempacar tuplas:

for index, row in data_file.iterrows():

¿Por qué no estás usando iloc directamente, de todos modos? No se recomienda usar iterrows, debido a su impacto negativo en el rendimiento.

2
oberam-eng 16 feb. 2018 a las 23:07