Использование cut
для сегментирования столбца A
в ячейки, а затем применение groupby
к этим сегментам и вычисление значения mean
B
:
df.groupby(pd.cut(df['A'], bins=np.arange(11)))['B'].mean()
Выход:
A
(0, 1] 0.465408
(1, 2] 0.522665
(2, 3] NaN
(3, 4] 0.571255
(4, 5] 0.659662
(5, 6] 0.394901
(6, 7] 0.117359
(7, 8] 0.268144
(8, 9] 0.541056
(9, 10] 0.593431
Обновление: Вы можете использовать agg
для применения набора различных функций агрегирования, таких как mean
, std
и size
, например:
df.groupby(pd.cut(df['A'], bins=np.arange(11)))['B'].agg(['mean', 'std', 'size'])
Выход:
mean std size
A
(0, 1] 0.465408 NaN 1
(1, 2] 0.522665 0.149038 4
(2, 3] NaN NaN 0
(3, 4] 0.571255 0.441983 3
(4, 5] 0.659662 NaN 1
(5, 6] 0.394901 0.385560 2
(6, 7] 0.117359 0.107011 2
(7, 8] 0.268144 NaN 1
(8, 9] 0.541056 0.434788 3
(9, 10] 0.593431 0.173556 3