У меня есть кадр данных Pandas, который выглядит следующим образом:
ID Cat
1 SF
1 W
1 F
2 R64
2 SF
2 F
Первый столбец является идентификатором, а второй столбец содержит категориальные данные, порядок которых следующий: R64 < SF < F < W
Мне нужен новый фрейм данных, который содержит для каждого идентификатора максимальное категориальное значение.Результирующий кадр данных должен выглядеть следующим образом:
ID Cat
1 W
2 F
Я пробовал решение из этого потока , но оно не работает для категориальных данных: df.groupby("ID", as_index=False).Cat.max()
Результат с таким подходом выглядит следующим образом:
ID number
1 SF
2 SF
Я объявляю категориальный столбец следующим образом:
df['Cat'] = pd.Categorical(df['Cat'], categories = ["R64", "SF", "F", "W"], ordered = True)