Maybe too late, but for a future reference, numpy has a function that does just that:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.digitize.html
>>> my_list = [3,2,56,4,32,4,7,88,4,3,4] >>> bins = [0,20,40,60,80,100] >>> np.digitize(my_list,bins) array([1, 1, 3, 1, 2, 1, 1, 5, 1, 1, 1])
The result is an array of indices corresponding to the bin box that belongs to each item from my_list. Note that the function will also have bin values ββthat go beyond your first and last edges of the boxes:
>>> my_list = [-5,200] >>> np.digitize(my_list,bins) array([0, 6])
And Pandas is also something similar:
http://pandas.pydata.org/pandas-docs/dev/basics.html#discretization-and-quantiling
>>> pd.cut(my_list, bins) Categorical: array(['(0, 20]', '(0, 20]', '(40, 60]', '(0, 20]', '(20, 40]', '(0, 20]', '(0, 20]', '(80, 100]', '(0, 20]', '(0, 20]', '(0, 20]'], dtype=object) Levels (5): Index(['(0, 20]', '(20, 40]', '(40, 60]', '(60, 80]', '(80, 100]'], dtype=object)