Объединить и посчитать (сложить) значения ключей в списке словарей

Есть список словарей:

stat_get = [{'keyword': 'лоскуты ткани для рукоделия', 'views': 385, 'clicks': 22, 'ctr': 5.71, 'sum': 48.13}, {'keyword': 'лоскуты ткани для рукоделия', 'views': 340, 'clicks': 14, 'ctr': 4.12, 'sum': 42.5}, {'keyword': 'ткань для пэчворка', 'views': 242, 'clicks': 9, 'ctr': 3.72, 'sum': 30.25}]

Как объединить эти словари по ключевом слову 'keyword', посчитав общее количество 'views', 'clicks', 'ctr' для объединенных 'keyword' ?

Результат:

    stat_result = [{'keyword': 'лоскуты ткани для рукоделия', 'views': 725, 'clicks': 36, 'ctr': 9.83, 'sum': 90.63}, {'keyword': 'ткань для пэчворка', 'views': 242, 'clicks': 9, 'ctr': 3.72, 'sum': 30.25}]

Ответы (1 шт):

Автор решения: strawdog

Вам, возможно, подскажут еще, как это сделать с помощью itertools.groupby , но вот решение с помощью модуля pandas:

import pandas as pd
res = pd.DataFrame(stat_get).groupby("keyword", as_index=False).sum().to_dict("records")
print(res)

[{'keyword': 'лоскуты ткани для рукоделия', 'views': 725, 'clicks': 36, 'ctr': 9.83, 'sum': 90.63}, {'keyword': 'ткань для пэчворка', 'views': 242, 'clicks': 9, 'ctr': 3.72, 'sum': 30.25}]

→ Ссылка