Since hist
and value_counts
don't use the Series' index, you may as well treat the Series like an ordinary array and use np.histogram
directly. Then build a Series from the result.
In [4]: s = Series(randn(100))
In [5]: counts, bins = np.histogram(s)
In [6]: Series(counts, index=bins[:-1])
Out[6]:
-2.968575 1
-2.355032 4
-1.741488 5
-1.127944 26
-0.514401 23
0.099143 23
0.712686 12
1.326230 5
1.939773 0
2.553317 1
dtype: int32
This is a really convenient way to organize the result of a histogram for subsequent computation.
To index by the center of each bin instead of the left edge, you could use bins[:-1] + np.diff(bins)/2
.