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

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

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

Войти через центр авторизации
Похожие вопросы