У меня есть цикл for, по которому я генерирую случайное ежедневное значение для каждого месяца. Мне нужно убедиться, что сгенерированное среднемесячное значение должно равняться наблюдаемому среднему значению (представленному в другом кадре данных). Поэтому мне нужно запустить цикл for, пока не будет сгенерировано нужное значение, и после этого он снова запустится в течение следующего месяца.
У меня есть пример кода, но я не уверен, как запустить его несколько раз, пока не получу желаемое значение:
for j in np.arange(1,13,1):
# calculating monthly leanth from provided datasets
mlen = ((df_test[df_test.index.year==2000]).index.month==j).sum()
# fit to my distribution
phat = stats.exponweib.fit((df_test[df_test.index.month==j].mean(axis=1)).dropna())
# predicting based on the fitted distribution
esti = stats.exponweib.rvs(*phat,int(mlen))
if esti.mean() == monthly_mean[0]
Где месячное_значение - это наблюдаемое среднемесячное значение, которое выглядит следующим образом, где первое значение за первый месяц.
monthly_mean = array([ 5.15 , 5.948571, 7.028261, 4.144231, 3.585965,
5.244828, 4.915455, 4.757 , 5.803614, 12.573684,
5.683333, 3.875 ])
любая помощь / предложение высоко ценится!