Я пытаюсь рассчитать средневзвешенное значение столбца «цены» в следующем кадре данных для каждой зоны независимо от часа. Я хочу по существу суммировать количества, которые соответствуют A, разделить каждую отдельную строку количества на эту сумму (чтобы получить веса), а затем умножить ее на цену.
Есть около 200 зон, мне трудно написать что-то, что в общих чертах обнаружит, что Зоны совпадают, и не нужно писать df['ZONE'] = 'A'
и т. Д. Пожалуйста, помогите моему потерянному я =)
HOUR: 1,2,3,1,2,3,1,2,3
ZONE: A,A,A,B,B,B,C,C,C
PRICE: 12,15,16,17,12,11,12,13,15
QUANTITY: 5,6,1 5,7,9 6,3,2
Я не уверен, что вы можете написать что-то в общем, но я подумал, что если я напишу функцию, где x - это моя «Зона», создам список с возможными зонами, а затем создам цикл for. Вот функция, которую я написал, на самом деле не работает - пытаясь выяснить, как еще я могу заставить ее работать
def wavgp(x):
df.loc[df['ZONE'].isin([str(x)])] = x