Прошу прощения за очевидные ошибки - все еще учусь.
У меня есть pandas кадр данных с высокочастотными данными, что очень противоречиво. Я должен рассчитать среднемесячное значение, но не могу сделать это напрямую из среднесуточного значения. Условием для расчета среднемесячного значения является то, что должно быть не менее 1 точки данных в неделю для учета в среднемесячном значении.
Я не могу просто использовать еженедельные средние значения из-за неравномерной продолжительности недели в каждом месяце. Моя цель состоит в том, чтобы удалить все месяцы, которые имеют менее двух еженедельных средних (из еженедельного расчета), а затем рассчитать среднемесячное значение из дневных значений.
Я пытаюсь использовать оператор if для вычисления этого условного среднего. (В выражении «если» я хочу сказать, что если за неделю среднее значение не равно нулю, то эта неделя должна быть засчитана к среднемесячному значению, а среднее месячное значение должно включать как минимум одно такое еженедельное среднее значение)
Любая помощь в выяснении синтаксиса будет высоко ценится.
Это подход, который я использую в своем коде, но я знаю, что он не переводится в то, что я имею в виду:
for week in weeks:
value = df_weekly.loc[df_weekly['week']==week]['mean'].values
if any (value >0):
df_monthly = (df_daily_fix.groupby(["M","L","T" ,"year" ,pd.Grouper(freq='m')])["mean"]
.agg(["count", "mean"])
.reset_index().set_index(['Date']))
else:
df_monthly = np.nan
Аналогично, для среднегодового значения мне придется выбирать в минимум четверть Или среднегодовое значение должно иметь значение для каждого квартала.
Спасибо в ожидании.