89 votos

¿cómo conseguir el recuento de fila del cuadro de datos de los pandas?

Trato de obtener el número de filas del marco de datos df, ambos fragmentos de código me dan un error: TypeError: tipo(s) de operando no soportado para +: 'instancemethod' e 'int'.

total_rows = df.count
print total_rows +1

total_rows = df['First_columnn_label'].count
print total_rows +1

Agradecería cualquier sugerencia de lo que estoy haciendo mal.

EDITORIAL: De acuerdo con la respuesta dada por Root la mejor (la más rápida) manera de comprobar la longitud del df es llamar:

len(df.index)

119voto

root Puntos 14514

Puedes usar el .shape propiedad o simplemente len(DataFrame.index) ya que hay notables diferencias de rendimiento:

In [1]: import numpy as np

In [2]: import pandas as pd

In [3]: df =pd.DataFrame(np.arange(9).reshape(3,3))

In [4]: df
Out[4]: 
   0  1  2
0  0  1  2
1  3  4  5
2  6  7  8

In [5]: df.shape
Out[5]: (3, 3)

In [6]: timeit df.shape
1000000 loops, best of 3: 1.17 us per loop

In [7]: timeit df[0].count()
10000 loops, best of 3: 56 us per loop

In [8]: len(df.index)
Out[8]: 3

In [9]: timeit len(df.index)
1000000 loops, best of 3: 381 ns per loop

Como se ha señalado @Dan Allen en los comentarios len(df.index) y df[0].count() no son intercambiables ya que count excluye NaN s,

23voto

Jan-Philip Gehrcke Puntos 6259

Utilice len(df) . Esto funciona a partir de pandas 0.11 o tal vez incluso antes.

__len__() está actualmente (0,12) documentado con Returns length of index . Información de tiempo, establecida de la misma manera que en la respuesta de Root:

In [7]: timeit len(df.index)
1000000 loops, best of 3: 248 ns per loop

In [8]: timeit len(df)
1000000 loops, best of 3: 573 ns per loop

Debido a una llamada de función adicional es un poco más lenta que la llamada len(df.index) directamente, pero esto no debería jugar ningún papel en la mayoría de los casos de uso.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X