Как работает sort_values для нескольких столбцов в Pandas?
Есть DataFrame, который можно отсортировать при помощи df.sort_values(by = 'Name'), где Name - имя столбца по которому сортируем, однако как работает df.sort_values(by = ['Name', 'Name2']) для двух или более столбцов?
Пример из оф. документации
df1 = pd.DataFrame({'one': [2, 1, 1, 1],
'two': [1, 3, 2, 4],
'three': [5, 4, 3, 2]})
df1.sort_values(by=['one', 'two'])
Как мы получаем это?
one two three
2 1 2 3
1 1 3 4
3 1 4 2
0 2 1 5
Ответы (2 шт):
В начале сортировка идет по первому значения "one", те у которых "one" одинаковы сортировка идет по`"two" и так далее.
Это работает точно так же, как в других подобных случаях, например, при SQL запросах к базе данных с сортировкой ORDER BY по нескольким столбцам. Сначала делается сортировка по первому столбцу, потом в тех строках, где значения первого столбца одинаковые - идёт сортировка по второму столбцу, потом в строках, где значения первого столбца совпадают и второго столбца тоже совпадают - идёт сортировка по третьему столбцу (если он указан) и т.д.