avatar
Мир аналитика данных
@analysts_world
10.03.2023 15:12
Функция transform() в Python 🐍

Подглядела эту функцию у коллеги. Не влюбиться в функцию просто не возможно! Она такая крутая! Короче, это метод, который применяет функцию к каждой группе данных и возвращает результат в том же порядке, что и исходные данные. Это очень удобный способ изменения исходных данных.

✏️ Синтаксис:
DataFrame.groupby('column_name').transform(function_name)

Создадим dataframe
data =
{'Name': ['Петров', 'Удалова', 'Ковалев', 'Сидоров', 'Ефремов', 'Титова'],
'Department': ['Sales', 'It', 'It', 'Sales', 'Other', 'Other'],
'Salary': [50000, 57000, 62000, 45000, 59000, 70000]}
df = pd.DataFrame(data)

Создаем новый столбец '%' – процент з/пл сотрудника к общей з/пл отдела. А почему бы и нет, что называется.
df['%'] =
df.groupby('Department')['Salary'].transform(lambda x: x/x.sum())
Этот код создаст новый столбец, который посчитает % зарплаты каждого работника к общей з/пл отдела. Функция transform() применяется к столбцу Salary каждой группы, сгруппированной по полю Department.

А еще можно сделать вот что
df['min'] =
df.groupby('Department')['Salary'].transform('min')
И напротив каждой строки будет указана минимальная сумма з/пл в отделе. Также можно посчитать максимальную з/пл, среднюю и общую сумму в отделе (max, mean и sum).

P.s. Хотите такого мультяшного персонажа? Заливаете свое фото и получаете через минуту

https://imagetocartoon.com Можете в комменты кидать своих персов, чтобы веселее было
👍 20
🔥 3
1
5 19 2.4K

Обсуждение 5

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram