У меня проблема с питоном.Это мои данные выборки
col1 col2 desired
0 a 1 2.50
1 a 2 2.00
2 a 3 1.50
3 b 2 3.00
4 b 3 2.00
5 c 3 1.67
6 c 1 2.33
7 c 2 2.00
8 c 2 2.00
, входные данные df['col1']
и df['col2']
.Я хочу использовать эти два столбца для получения желаемого результата в df['desired']
.
Идея состоит в том, что я хочу сгруппировать по col1
и вычислить среднее значение col2
.Единственный трюк здесь заключается в том, что я хочу исключить текущую строку из расчета среднего значения.
Так что для строки 0 я группирую по df['col1'] == 'a'
, но для вычисления используем только строки 1 и 2среднее.Для строки 1 я также группирую по df['col1'] == 'a'
, но я использую только строки 1 и 3. И так далее.
Единственное, о чем я могу думать, - это создать пользовательскую функцию для .transform()
, которая будет принимать в качестве входных данных серию, поступающую от сгруппированного объекта, но я не уверен, как к ней подойти.В идеале я ищу более простой (панда?) Метод для достижения этой цели.