Ниже приведен пример фрейма данных:
Я хотел бы отсортировать этот фрейм данных так, чтобы они были сгруппированы по штату и местоположению. В случае с Location все нюансы Манхэттена сгруппированы вместе, как и для остальных. Столбец «Местоположение» должен быть отсортирован в порядке [Манхэттен, Квинс, Кливленд].
Результат должен быть примерно таким, как показано ниже:
Я попробовал решение , опубликованное здесь . Но чтобы это работало, мне нужно будет включить все возможности в столбец Location. Какой лучший способ добиться этого?
Я имел в виду столбец «Локальный». Я отредактировал таблицу, переименовав ее в «Местоположение», чтобы избежать путаницы.
Как насчет сортировки по последнему слову столбца «Местоположение»?
дескриптор местоположения не всегда является последним словом.





Пытаться:
# extract required areas
df["tmp"] = df.Location.str.extract(r"(Manhattan|Queens|Cleveland)")
# define order
df["tmp"] = pd.Categorical(
df["tmp"], categories=["Manhattan", "Queens", "Cleveland"], ordered=True
)
# sort
df = df.sort_values(by=["State", "tmp"]).drop(columns = "tmp")
print(df)
Распечатки:
Name State Location
0 Jamie New York Manhattan
5 Perry New York Uptown Manhattan
7 Julie New York Lower Manhattan
2 John New York Flushing Queens
6 Diane New York Briarwood Queens
1 Mary Ohio Downtown Cleveland
3 Sam Ohio Lakewood Cleveland
4 James Ohio Beachwood Cleveland
Под «локальным» вы имеете в виду локаль?