У меня есть список словарей, который выглядит так:
_input = [{'cumulated_quantity': 30, 'price': 7000, 'quantity': 30},
{'cumulated_quantity': 80, 'price': 7002, 'quantity': 50},
{'cumulated_quantity': 130, 'price': 7010, 'quantity': 50},
{'cumulated_quantity': 330, 'price': 7050, 'quantity': 200},
{'cumulated_quantity': 400, 'price': 7065, 'quantity': 70}]
Я бы хотел сгруппировать словарь в ячейках с количеством 100, где цена рассчитывается как средневзвешенное значение. Результат должен выглядеть так:
result = [{'cumulated_quantity': 100, 'price': 7003, 'quantity': 100},
{'cumulated_quantity': 200, 'price': 7038, 'quantity': 100},
{'cumulated_quantity': 300, 'price': 7050, 'quantity': 100},
{'cumulated_quantity': 400, 'price': 7060.5, 'quantity': 100}]
Средневзвешенные значения в словаре результатов рассчитываются следующим образом:
7003 = (30*7000+50*7002+20*7010)/100
7038 = (30*7010+70*7050)/100
7050 = 100*7050/100
7060.5 = (30*7050+70*7065)/100
Мне удалось получить результат, используя кадры данных pandas, однако их производительность слишком низкая (около 0,5 секунды). Есть ли быстрый способ сделать это в Python?