Вы можете использовать родной панд cut
, который определяет ячейки в виде интервалов.
ser = pd.Series(np.random.randint(1, 100, 50))
bins = range(0, 101, 10)
pd.cut
классифицирует данные в ячейки, используя метод Categorical
.
In [4]: pd.cut(ser, bins).cat.categories
Out[4]:
IntervalIndex([(0, 10], (10, 20], (20, 30], (30, 40], (40, 50], (50, 60], (60, 70], (70, 80], (80, 90], (90, 100]]
closed='right',
dtype='interval[int64]')
Если вы хотите продолжить их заговор, это будет выглядеть примерно так:
In [5]: pd.cut(ser, bins).value_counts().plot(kind='bar')
Out[5]: <matplotlib.axes._subplots.AxesSubplot at 0x10e673b70>
