tutorial tablas seleccionar recorrer notebook for español documentacion datos data con columnas cargar python pandas dataframe

python - tablas - ¿Cómo obtengo el número de filas de un marco de datos de Pandas?



seleccionar columnas de un dataframe pandas (12)

Estoy tratando de obtener el número de filas de dataframe df con Pandas, y aquí está mi código.

Método 1:

total_rows = df.count print total_rows +1

Método 2:

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

Ambos fragmentos de código me dan este error:

TypeError: tipo (s) de operando no admitidos para +: ''instancemethod'' e ''int''

¿Qué estoy haciendo mal?

De acuerdo con la respuesta dada por @root la mejor manera (la más rápida) de verificar la longitud de df es llamar a:

df.shape[0]


... basándose en la respuesta de Jan-Philip Gehrcke.

La razón por la que len(df) o len(df.index) es más rápida que df.shape[0] . Mira el código. df.shape es una @property que ejecuta un método DataFrame llamando a len dos veces.

df.shape?? Type: property String form: <property object at 0x1127b33c0> Source: # df.shape.fget @property def shape(self): """ Return a tuple representing the dimensionality of the DataFrame. """ return len(self.index), len(self.columns)

Y debajo del capó de len (df).

df.__len__?? Signature: df.__len__() Source: def __len__(self): """Returns length of info axis, but here we use the index """ return len(self.index) File: ~/miniconda2/lib/python2.7/site-packages/pandas/core/frame.py Type: instancemethod

len(df.index) será un poco más rápido que len(df) ya que tiene una llamada de función menos, pero esto siempre es más rápido que df.shape[0]


Aparte de las respuestas anteriores, el uso puede usar df.axes para obtener la tupla con índices de fila y columna y luego usar la función len() :

total_rows=len(df.axes[0]) total_cols=len(df.axes[1])


En caso de que desee obtener el recuento de filas en medio de una operación encadenada, puede utilizar:

df.pipe(len)

Ejemplo:

row_count = ( pd.DataFrame(np.random.rand(3,4)) .reset_index() .pipe(len) )

Esto puede ser útil si no desea poner una declaración larga dentro de una función len ().

Podría usar __len __ () en su lugar, pero __len __ () parece un poco raro.


Llego a los pandas desde el fondo R , y veo que los pandas son más complicados cuando se trata de seleccionar una fila o columna. Tuve que luchar con él por un tiempo, luego encontré algunas maneras de lidiar con:

obteniendo el número de columnas:

len(df.columns) ## Here: #df is your data.frame #df.columns return a string, it contains column''s titles of the df. #Then, "len()" gets the length of it.

obteniendo el número de filas:

len(df.index) #It''s similar.


Para el marco de datos df, un recuento de filas con formato de coma impreso que se utiliza al explorar datos:

def nrow(df): print("{:,}".format(df.shape[0]))

Ejemplo:

nrow(my_df) 12,456,789


Para obtener filas, use

df.index

y para columnas, usar

df.columns

Siempre puede usar len(anyList) para obtener el recuento de la lista, por lo tanto, puede usar len(df.index) para obtener el número de filas, o más corto pruebe con len(df) para el número de filas.

Alternativamente, puede usar df.shape[0] and df.shape[1] para obtener el número de filas y columnas, respectivamente.


Puede usar la propiedad .shape o simplemente len(DataFrame.index) . Sin embargo, hay diferencias de rendimiento notables ( len(DataFrame.index) es el más rápido):

In [1]: import numpy as np In [2]: import pandas as pd In [3]: df = pd.DataFrame(np.arange(12).reshape(4,3)) In [4]: df Out[4]: 0 1 2 0 0 1 2 1 3 4 5 2 6 7 8 3 9 10 11 In [5]: df.shape Out[5]: (4, 3) In [6]: timeit df.shape 2.77 µs ± 644 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each) In [7]: timeit df[0].count() 348 µs ± 1.31 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each) In [8]: len(df.index) Out[8]: 4 In [9]: timeit len(df.index) 990 ns ± 4.97 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

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


Recuento de filas (use cualquiera de):

df.shape[0] len(df)


Supongamos que df es su marco de datos entonces:

count_row = df.shape[0] # gives number of row count count_col = df.shape[1] # gives number of col count


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

__len__() está documentado (0.12) con la Returns length of index . Información de tiempo, configurada de la misma manera que en la respuesta de la raíz:

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 lento que llamar directamente a len(df.index) , pero esto no debería desempeñar ningún papel en la mayoría de los casos de uso.


fácilmente una línea

your_data _frame.shape

te dará un número simple de filas y columnas


df.shape devuelve la forma del marco de datos en forma de una tupla (número de filas, número de columnas).

Simplemente puede acceder al no. de filas o no. de cols con df.shape[0] o df.shape[1] , respectivamente, que es lo mismo que acceder a los valores de la tupla.