Задать вопрос

Как в pandas агрегировать по списку, включая отсутствующие?

Есть список интересующих ID и куча строк с числами к некоторым, не всем из этих ID.

Хочется получить сумму чисел по каждому из ID. И нули для тех, к которым нет ни одного. Что-ти типа LEFT OUTER JOIN в SQL.

Например, данные:
id  x
------
1   10
1   12
2   11
4   21


Интересуют ID (1,2,3,4). Как результат ожидается
1  22
2  11
3  0
4  21


Без нулей я бы сделал так:df[['id','x']].groupby('id').agg('sum')
Но это просто не выводит строк для тех ID, для которых нет ни одной записи.
  • Вопрос задан
  • 45 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Python-разработчик
    9 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
Решения вопроса 1
sergiks
@sergiks Автор вопроса
♬♬
Подсказали на SO: надо использовать reindex()

my_ids = [1,2,3,4] #для примера
df.groupby('id').sum()
             .reindex( my_ids, fill_value=0)
             .reset_index()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы