Я новичок в python, извините, если я не понимаю. Я пытаюсь создать al oop, чтобы получить среднюю скользящую стоимость для различных продуктов. У меня есть набор данных, который содержит более 55000 продуктов (my_product_id) и их стоимость за каждый месяц с 01.01.2019. Я пытаюсь создать функцию для получения скользящей средней стоимости за последние 3 месяца. Пока что я написал эту функцию, которая работает, но работает только для одного продукта и после этого останавливает l oop. Мне нужно запустить эту функцию для всех уникальных идентификаторов продуктов в столбце. Вот как выглядит мой набор данных
введите описание изображения здесь
def abc(df_189):
dfObj = pd.DataFrame(columns=['my_product_id', 'Cost'])
my_products = df_189.my_product_id.unique()
for i in my_products:
df_test = df_189[df_189.my_product_id == i]
Grouped=df_test.groupby('date')
GetWeightAvg=lambda g: np.average(g['cost'], weights=g['quantity'])
pr=Grouped.apply(GetWeightAvg).sort_index(ascending=False).head(3).mean()
dfObj = dfObj.append({'my_product_id': i, 'Cost': pr}, ignore_index=True)
return dfObj
Это возвращает Dataframe только из одной строки идентификатора первого продукта, поэтому он работает правильно, но останавливается после первого продукта.
Заранее спасибо :)