Поскольку данные сильно сезонны, я проверяю данные каждого округа за каждый год. Если данные за конкретный год содержат нули, я заменяю данные округа за этот год скорректированным набором данных, который применяет сезонность на уровне штата к годовому объему на уровне округа.
После долгих испытаний и ошибка, чтобы избежать итерации, которая привела меня к вложенным функциям apply с индексами сброса (например, df.apply(lambda x: x.reset_index().apply(lambda y: [расчет])), в конечном итоге я написал очистку данных, используя итерацию, которая вычисляет сезонность, а затем умножает сезонные данные на фрейм данных, в котором годовой объем хранится в ежемесячных столбцах:
Код: Выделить всё
# Initialize empty seasonality df with the index and column values from the source data
cty_season = pd.DataFrame(index=cty_data.index, columns=cty_data.columns)
# Iterate through the index and columns to populate each value
for idx in cty_season.index:
for col in cty_season.columns:
cty_season.loc[idx,col] = [calculation referring to helper dfs with identical indices and columns]
# Combine seasonality data with sales totals to get revised dataset
cty_adj = cty_season * cty_annual
Подробнее здесь: https://stackoverflow.com/questions/792 ... -awareness