2015-10-26 27 views
24

Questa è la differenza tra groupby("x").count e groupby("x").size in panda?Qual è la differenza tra dimensione e conteggio nei panda?

La dimensione esclude nulla?

+2

La documentazione dice che la dimensione "restituisce il numero di elementi nel NDFame" e il conteggio "restituisce Serie con numero di osservazioni non NA/null sull'asse richiesto. Funziona anche con dati senza virgola mobile (rileva NaN e Nessuno) " – Hamsternik

risposta

29

size include NaN valori, count non:

In [46]: 
df = pd.DataFrame({'a':[0,0,1,2,2,2], 'b':[1,2,3,4,np.NaN,4], 'c':np.random.randn(6)}) 
df 

Out[46]: 
    a b   c 
0 0 1 1.067627 
1 0 2 0.554691 
2 1 3 0.458084 
3 2 4 0.426635 
4 2 NaN -2.238091 
5 2 4 1.256943 

In [48]: 
print(df.groupby(['a'])['b'].count()) 
print(df.groupby(['a'])['b'].size()) 

a 
0 2 
1 1 
2 2 
Name: b, dtype: int64 

a 
0 2 
1 1 
2 3 
dtype: int64 
3

solo per aggiungere un po 'per @ di Edchum risposta, anche se i dati non ha valori NA, il risultato del conteggio() è più prolisso, utilizzando l'esempio prima:

grouped = df.groupby('a') 
grouped.count() 
Out[197]: 
    b c 
a  
0 2 2 
1 1 1 
2 2 3 
grouped.size() 
Out[198]: 
a 
0 2 
1 1 
2 3 
dtype: int64 
+0

Sembra che' size' sia un equivalente elegante di 'count' in panda. –

1

Quando si tratta di quadri di dati normali allora unica differenza sarà un inserimento di valori NAN, significa conteggio non prevede valori NAN contando righe.

Ma se usiamo queste funzioni con il gruppo da allora, per ottenere i risultati corretti per count() dobbiamo associare qualsiasi campo numerico con il gruppo per ottenere il numero esatto di gruppi dove per size() lì non è necessario per questo tipo di associazione.

Problemi correlati