Неверная сумма по группировке данных по нескольким столбцамPython

Программы на Python
Ответить
Гость
 Неверная сумма по группировке данных по нескольким столбцам

Сообщение Гость »


Сценарий. После создания кадра данных путем объединения набора кадров данных я хочу сгруппировать результат по двум столбцам и вывести сумму.

Кадр данных: testoutput2

+-----+-------+---------+-----------+------- -------------+----------+----------+----------+--- -------+ | Ключ | Индекс | Уровень 4 | МЭА ОРЭ22 | Регион МЭА Уровень 1 | 2018 МЭА | 2019 МЭА | 2020 МЭА | 2021 МЭА | +-----+-------+---------+-----------+------------- -------+----------+----------+----------+--------- -+ | ФРА | - | 12 000 | 12 000 | Развитые экономики | 54 | 37 | 26 | 0,00 | | ФРА | 1 | 11 000 | 11 000 | Развитые экономики | 8 | 8 | 7 | 11 | | ФРА | 3 | 31 100 | 31 100 | Развитые экономики | 4 | 3 | 3 | 0,00 | | БЕЛ | - | 12 000 | 12 000 | Развитые экономики | 8 | 9 | 7 | 0,00 | | БЕЛ | 1 | 11 000 | 11 000 | Развитые экономики | 1 | 1 | 1 | 2 | | БЕЛ | 3 | 31 100 | 31 100 | Развитые экономики | 1 | 1 | 1 | 0,00 | +-----+-------+---------+-----------+------------- -------+----------+----------+----------+--------- -+ Требуемый результат: набор фреймов данных, где каждый ключ представляет собой год. Содержимое кадра данных внутри dict будет следующим:

ключевой отчет МЭА 2018 г. +---------+--------------------+-----+ | Уровень 4 | Регион МЭА Уровень 1 | Сумма | +---------+--------------------+-----+ | 12 000 | Развитые экономики | 62 | | 11 000 | Развитые экономики | 9 | | 31 100 | Развитые экономики | 5 | +---------+--------------------+-----+ Проблема: При выполнении приведенного ниже кода я получаю неверный результат, где суммы не соответствуют ожидаемым значениям:

+---------+--------------------+-----+ | Уровень 4 | Регион МЭА Уровень 1 | Сумма | +---------+--------------------+-----+ | 12 000 | Развитые экономики | 61 | | 11 000 | Развитые экономики | 8 | | 31 100 | Развитые экономики | 4 | +---------+--------------------+-----+ Примечание: В настоящее время я тестирую этот код с меньшим фрагментом данных (как в примере здесь). Однако цель состоит в том, чтобы провести это с гораздо большим набором данных. В этом случае в столбце региона есть только одна запись, тогда как в основном наборе данных их больше.

Код:

scen_name = "IEA" scen_reg_out_dict={} год_список_2 = [2018,2019,2020,2021] для год_вар в год_список_2: scen_reg_out_dict[str(year_var) + " " + scen_name] = testoutput2.groupby(['Level 4','Region IEA Level 1'])[str(year_var) + " " + scen_name].agg(['sum'] ).astype('int64') Вопрос: Что может быть причиной сбоя расчета?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»