Un método de las series pandas extremadamente útil es pandas.Series.value_counts. Este método devuelve una estructura conteniendo los valores presentes en la serie y el número de ocurrencias de cada uno. Estos valores se muestran en orden decreciente:
s = pd.Series([3, 1, 2, 1, 1, 4, 1, 2, np.nan])
s.value_counts()
1.0 4
2.0 2
4.0 1
3.0 1
dtype: int64
Como puede apreciarse, por defecto no se incluyen los valores nulos. Este comportamiento puede modificarse haciendo uso del parámetro dropna:
s.value_counts(dropna = False)
1.0 4
2.0 2
NaN 1
4.0 1
3.0 1
dtype: int64
En lugar de devolver los valores distintos y el número de ocurrencias, este método también puede agrupar los datos en "bins" y devolver una lista de bins (indicando sus márgenes) con el número de valores en cada uno de ellos. Por ejemplo, si quisiéramos agrupar los valores de la serie anterior en dos bins podríamos hacerlo de la siguiente forma:
s.value_counts(bins = 2)
(0.996, 2.5] 6
(2.5, 4.0] 2
dtype: int64
Vemos que se han creados los dos bins, el primero conteniendo los valores entre 0.996 y 2.5 (intervalo abierto por la izquierda y cerrado por la derecha), bin en el que hay 6 valores, y el segundo conteniendo los valores entre 2.5 y 4 (intervalo también abierto por la izquierda y cerrado por la derecha), bin en el que hay 2 valores.