Как отсортировать столбцы независимо друг от друга?
import pandas as pd
df = pd.read_excel('random.xlsx')
df.sort_values(['Name','Birthday','City of birth','Favorite color of the rainbow', 'Favorite subject at school'], ascending = [True])
df
Проблема в том, что сортирует только первый столбец, а надо чтобы все.
Добавил фотку таблицы. Надо чтобы каждый столбец сортировался отдельно.
К примеру, столбец с именами сортировался по алфавиту, столбец 2 по дате, столбец 3 по алфавиту, столбец 4 и 5 также по алфавиту.
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Рабочий пример:
In [124]: np.random.seed(42)
In [125]: df = pd.DataFrame(np.random.randint(20, size=(5, 3)), columns=list("abc"))
In [126]: df
Out[126]:
a b c
0 6 19 14
1 10 7 6
2 18 10 10
3 3 7 2
4 1 11 5
In [127]: res = pd.DataFrame(np.sort(df, axis=0), columns=df.columns)
In [128]: res
Out[128]:
a b c
0 1 7 2
1 3 7 5
2 6 10 6
3 10 11 10
4 18 19 14
NOTE: учтите, при такой сортировке у вас разрываются связи в строках, т.е. все столбцы будут отсортированы независимо друг от друга. То что до сортировки принадлежало одной строке, после сортировки может быть разбросано по разным строкам. Только так можно реализовать то, что вы описали в вопросе.
