Предположим, у меня есть my_df
:
my_df = pd.DataFrame({'X': ['a', 'a', 'b', 'b'], 'Y1': [1, 2, 3, 4], 'Y2': [1, 2, 3, 4], 'Z': [1, 0, 1, 0]})
my_df
X Y1 Y2 Z
0 a 1 1 1
1 a 2 2 0
2 b 3 3 1
3 b 4 4 0
Я ищу способ использования pivot_table
с возможно разными условиями для каждого столбца в aggfunc
. В качестве примера предположим, что я хочу сгруппировать данные по X
и получить среднее значение. Для Y1
я хотел бы применить прямое агрегирование mean
, а для Y2
я хотел бы применить условное агрегирование mean
для Z==1
. Вывод в этом случае будет:
Y1 Y2
X
a 1.5 1
b 3.5 3
Как настроить следующий код для соответствия условию?
my_df.pivot_table(index = 'X', aggfunc={'Y1': 'mean', 'Y2': 'mean'})