У меня есть датафрейм на часовом уровне с несколькими столбцами. Я хочу извлечь все строки (содержащие все столбцы) из 10 верхних значений определенного столбца для каждого года в моем фрейме данных.
До сих пор я запустил следующий код:
df = df.groupby([df.index.year])['totaldemand'].apply(lambda grp: grp.nlargest(10)))
Проблема здесь в том, что я получаю только 10 лучших значений для каждого года этого конкретного столбца, а остальные столбцы я теряю. Как я могу сделать эту операцию и иметь соответствующие значения других столбцов, которые соответствуют 10 лучшим значениям в год моего столбца totaldemand?