Если я правильно вас понял, вы пытаетесь создать новый столбец для каждого столбца, который есть в вашем фрейме данных, который содержит корзину, в которой находится каждая ячейка.
binner=list(range(0,6))
df = pd.DataFrame(np.random.randint(low=1, high=5,size=(20,7)), columns=list('ABCDEFG'))
for idx, col in enumerate(df.columns):
df['bin_{}'.format(col)]=pd.cut(x=df.loc[:, col],bins=binner)
выход:
A B C D E F G bin_A bin_B bin_C bin_D bin_E bin_F bin_G
0 1 3 2 1 4 3 2 (0, 1] (2, 3] (1, 2] (0, 1] (3, 4] (2, 3] (1, 2]
1 1 1 3 2 4 4 4 (0, 1] (0, 1] (2, 3] (1, 2] (3, 4] (3, 4] (3, 4]
2 1 2 2 3 1 2 2 (0, 1] (1, 2] (1, 2] (2, 3] (0, 1] (1, 2] (1, 2]
3 1 1 1 2 2 1 3 (0, 1] (0, 1] (0, 1] (1, 2] (1, 2] (0, 1] (2, 3]
4 1 3 1 1 4 4 4 (0, 1] (2, 3] (0, 1] (0, 1] (3, 4] (3, 4] (3, 4]
5 4 3 3 1 1 3 1 (3, 4] (2, 3] (2, 3] (0, 1] (0, 1] (2, 3] (0, 1]
6 1 2 1 4 2 2 3 (0, 1] (1, 2] (0, 1] (3, 4] (1, 2] (1, 2] (2, 3]
7 4 2 2 1 3 2 3 (3, 4] (1, 2] (1, 2] (0, 1] (2, 3] (1, 2] (2, 3]
8 1 1 4 1 1 2 1 (0, 1] (0, 1] (3, 4] (0, 1] (0, 1] (1, 2] (0, 1]
9 3 1 4 1 3 2 4 (2, 3] (0, 1] (3, 4] (0, 1] (2, 3] (1, 2] (3, 4]
10 2 2 2 3 3 4 4 (1, 2] (1, 2] (1, 2] (2, 3] (2, 3] (3, 4] (3, 4]
11 1 2 1 1 4 3 3 (0, 1] (1, 2] (0, 1] (0, 1] (3, 4] (2, 3] (2, 3]
12 4 1 1 1 4 1 1 (3, 4] (0, 1] (0, 1] (0, 1] (3, 4] (0, 1] (0, 1]
13 1 2 4 4 2 4 3 (0, 1] (1, 2] (3, 4] (3, 4] (1, 2] (3, 4] (2, 3]
14 3 3 4 4 2 4 2 (2, 3] (2, 3] (3, 4] (3, 4] (1, 2] (3, 4] (1, 2]
15 1 4 1 3 2 2 3 (0, 1] (3, 4] (0, 1] (2, 3] (1, 2] (1, 2] (2, 3]
16 4 2 2 3 2 1 2 (3, 4] (1, 2] (1, 2] (2, 3] (1, 2] (0, 1] (1, 2]
17 1 2 3 4 3 2 3 (0, 1] (1, 2] (2, 3] (3, 4] (2, 3] (1, 2] (2, 3]
18 2 3 3 2 3 3 3 (1, 2] (2, 3] (2, 3] (1, 2] (2, 3] (2, 3] (2, 3]
19 2 4 1 1 3 2 4 (1, 2] (3, 4] (0, 1] (0, 1] (2, 3] (1, 2] (3, 4]
Вы можете изменить метки корзин, используя аргумент labels
в pandas.cut ()