Я пытаюсь вычислить средневзвешенное значение столбца «цены» в следующем фрейме данных для каждой зоны, независимо от часа. Я хочу по существу суммировать количества, соответствующие 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