У меня есть пандас DataFrame с указателем даты и времени почасовой скорости и направления ветра.Мой цикл охватывает 31 год, и мне нужно делать ежегодные снимки месячных розовых ветров.Это переводит в 31 изображение, каждое с 12-ю участками.
Я понял, как получить розу ветров с помощью пакета Виндроз.Используя GroupBy, я могу сгруппировать данные по годам и / или месяцам.
Я пробовал группировать по годам и месяцам, но не мог понять, как затем выполнить итерацию по годам, чтобы сделать ежемесячные графики
grouped = data.groupby(by=[data.index.year, data.index.month])
Далее я попытался создать цикл for и сгруппировать данные за год для каждой группы
# Make lists of years and months
years = pd.Series(data.index.year).drop_duplicates(keep='first')
months = np.arange(1,13)
for year in years:
yearly = data.groupby([data.index.year == year])
Но это только сгруппировало данные в наблюдения в 2017 году, а наблюдения не в 2017. ЕслиЗатем я попытался отфильтровать до 2017 года, используя:
for year in years:
yearly = data.groupby([data.index.year == year]).filter(lambda x: data.index.year == 2017)
Я получаю сообщение об ошибке TypeError: функция фильтра возвратила ndarray, но ожидал скалярное bool
Так что на этом этапе я хочу иметь возможностьсначала выполнить итерацию по годам, а затем по месяцам (в год), чтобы в конечном итоге создавать годовые изображения с ежемесячными подзаговорами.