Вычтите среднее значение группы для столбца из значения столбца. - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть набор данных компании с 35 столбцами. Компании могут принадлежать к одной из 8 различных групп. Как мне создать для каждой группы новый фрейм данных, который вычтет среднее значение столбца для этой группы из исходного значения?

Вот пример части набора данных.

enter image description here

Так, например, для строки 1 я хочу вычесть среднее значение BANK_AND_DEP для потребительских рынков из значения 7204.400207. Мне нужно сделать это для каждого столбца.

Я предполагаю, что это какая-то комбинация преобразования и лямбды, но не может поразить синтаксис.

1 Ответ

0 голосов
/ 30 апреля 2020

Хотя это может показаться нелогичным, если вообще задействовать все oop, циклический просмотр самих столбцов позволяет сделать это как векторизованную операцию, которая будет быстрее, чем .apply(). Для чего нужно вычесть, вы объедините .groupby() и .transform(), чтобы получить значение, которое вам нужно вычесть из столбца. Затем просто вычтите его.

for column in df.columns:
    df['new_'+column] = df[column]-df.groupby('Cluster')['column'].transform('mean')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...