Вы должны поменять местами уровни индекса, чтобы сначала иметь месяц, а затем отсортировать по возрастанию отметки времени и убыванию показателя:
df.index = df.index.swaplevel()
df.sort_values(['timestamp', 'Score'], ascending=[True, False], inplace=True)
Это не дает интересного результата с вашим значением выборки, потому что только у одной компании есть Оценказначение за один месяц.
Чтобы извлечь значения за один месяц, вы можете использовать df.xs(month_value, level=0)
, который опустит один уровень в мультииндексе, или df.xs(month_value, level=0, drop_level=False)
, который сохранит его.