Недавно я наткнулась на интересную задачу и решила показать решение, которое, надеюсь, будет полезно многим из вас.
Надо было сгруппировать данные в DataFrame по колонке account_id и объединить значения из колонки type через запятую.
У меня были разные типы оплат у аккаунтов, и нужно было показать, какие типы использует каждый аккаунт.
Вот как это сделать с помощью pandas:
import pandas as pd
# Создам DataFrame для примера
data = {
'account_id': [1, 1, 2, 2, 3, 3, 3],
'type': ['A', 'B', 'A', 'C', 'B', 'A', 'D']
}
df = pd.DataFrame(data)
# Сгруппируем данные по колонке 'account_id' и объединим значения колонки 'type' через запятую
df_grouped = df.groupby('account_id')['type'].apply(','.join).reset_index()
# Переименую колонку для красоты
df_grouped.rename(columns={'type': 'type_combined'}, inplace=True)
Давайте разберёмся, что здесь происходит.
📌 Группировка данных по account_id. Из каждой группы выбираем значения колонки type.
df.groupby('account_id')['type']📌Применение функции apply с join. Мы объединяем все значения type в каждой группе в одну строку, разделяя их запятыми.
.apply(','.join)📊 Таким образом, значения из колонки type сгруппированы по account_id и объединены через запятую в новой колонке type_combined. 🔍
Надеюсь, вам это пригодится! ✨
