TGViewer
Мир аналитика данных Мир аналитика данных @analysts_world · 4.56K subscribers
Post #259 3.1K
🐍 Pandas: Объединяем значения в группах с groupby + join

Сейчас покажу то, что стопудово вы будете часто использовать!
Когда нужно собрать в кучу разрозненные текстовые значения для каждой группы из одной колонки. Например:

☑️Собрать все платформы, на которых работал рекламный аккаунт

☑️Объединить теги товаров из одной категории

☑️Соединить комментарии пользователей

Вот 3 способа как это сделать.
Допустим, у нас есть DataFrame с рекламными расходами:
import pandas as pd
data = { 'account_id': [100, 100, 100, 200, 200, 300, 300, 300, 400, 500],
'platform': ['yandex', 'telegram', 'vk', 'yandex', 'telegram',
'vk', 'yandex', 'telegram', 'yandex', 'vk'],
'amount': [600, 300, 200, 1500, 800, 1200, 600, 400, 900, 750]
}
df = pd.DataFrame(data)


1️⃣groupby + lambda + join 💡
df_grouped = df.groupby('account_id',as_index=False)['platform'].apply(lambda x: ', '.join(x))

lambda x: ... - это анонимная функция. Можно читать как: "Для каждого x (где x — это группа платформ) выполнить join"
Не забываем именно в groupby добавлять as_index=False, а не потом .reset_index(), так как это оптимальнее. Ну и к тому же раз уж в функции groupby есть такой способ, то им надо пользоваться.


2️⃣agg() с join 🔄
df_grouped2 = df.groupby('account_id',as_index=False).agg({'platform': lambda x: ', '.join(x)})


А если обернуть x в set(x), то можно убрать дубликаты если они там есть: df.groupby('account_id',as_index=False).agg({'platform':lambda x:','.join(set(x))})

3️⃣Краткая запись ⚡️
df_grouped3 = df.groupby('account_id',as_index=False)['platform'].apply(', '.join)


Короче, это реально удобно! Вместо нескольких строк с одним account_id получаем одну строку и видим все платформы аккаунта сразу.

А какой способ используете вы? Делитесь ⬇️
  • ❤‍🔥 11
  • 👍 1
  • 🌚 1
More from @analysts_world
  1. Sep 21, 2026📊 Задачка с собеседования Ну что, по итогам голосования большинство хотят задачки и sql.…
  2. Sep 14, 2026Post #345
  3. Sep 14, 2026Что-то я тут прям зачастила с A/B тестами 😅 Смотрю на последние посты и такое чувство, чт…
  4. Sep 1, 2026🎒 С 1 сентября, друзья! Сегодня как раз отправила своих детей в школу – и вот это чувство…
  5. Aug 24, 2026Вне выборки Обычно здесь про SQL, Python и AB-тесты. Но не всё, что важно, попадает в выбо…
  6. Aug 20, 2026Fuckup Night от создателей Trisigma, Ares и karpov.courses Согласитесь, ивенты, где все де…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →