Как в 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, для которых нет ни одной записи.
  • Вопрос задан
  • 38 просмотров
Решения вопроса 1
sergiks
@sergiks Автор вопроса
♬♬
Подсказали на SO: надо использовать reindex()

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

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

Войти через TM ID
Похожие вопросы
Popmechanic Москва
от 100 000 до 150 000 руб.
Panda Media Нижний Новгород
от 70 000 руб.
НЛ Континент Новосибирск
от 60 000 до 100 000 руб.
18 авг. 2018, в 01:10
17000 руб./за проект
17 авг. 2018, в 23:00
5500 руб./за проект