Per ottenere il numero di righe in un uso dataframe:
df.shape[0]
(e df.shape[1]
per ottenere il numero di colonne).
In alternativa è possibile utilizzare
len(df)
o
len(df.index)
(e len(df.columns)
per le colonne)
shape
è più versatile e più conveniente rispetto len()
, soprattutto per il lavoro interattivo (deve solo essere aggiunto alla fine), ma len
è un po 'più veloce (vedi als o this answer).
Per evitare: count()
perché restituisce il numero di non-NA/osservazioni nulle su richiesta asse
len(df.index)
è più veloce
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(24).reshape(8, 3),columns=['A', 'B', 'C'])
df['A'][5]=np.nan
df
# Out:
# A B C
# 0 0 1 2
# 1 3 4 5
# 2 6 7 8
# 3 9 10 11
# 4 12 13 14
# 5 NaN 16 17
# 6 18 19 20
# 7 21 22 23
%timeit df.shape[0]
# 100000 loops, best of 3: 4.22 µs per loop
%timeit len(df)
# 100000 loops, best of 3: 2.26 µs per loop
%timeit len(df.index)
# 1000000 loops, best of 3: 1.46 µs per loop
df.__len__
è solo una chiamata a len(df.index)
import inspect
print(inspect.getsource(pd.DataFrame.__len__))
# Out:
# def __len__(self):
# """Returns length of info axis, but here we use the index """
# return len(self.index)
Perché non dovrebbe usare count()
df.count()
# Out:
# A 7
# B 8
# C 8
Ok, era semplice. la len (dataframe) è stata la risposta facile. stampa len (df3) – IcemanBerlin
Questo funziona ... proprio come un fyi sembra che tu stia smettendo di '()', quindi quando chiami 'cnt = df.count' in realtà stai impostando' cnt' uguale a un metodo del dataframe, non il risultato di tale metodo. Prova 'cnt = df.count(); stampa cnt' per vedere di cosa sto parlando. – tshauck
Ah. grazie, tshauck, immagino che fosse in realtà quello che stavo cercando di fare. Il risultato di quel test ha effettivamente stampato il conteggio per ogni campo i.e.Field1 = 10 e la riga successiva Field2 = 10. Immagino che potresti anche applicare il conteggio a un campo particolare? – IcemanBerlin