@pashqa_2024

Сквозная сортировка индексов DataFrame?

Добрый день! Хочу отсортировать поля в трех столбцах таблицы, подскажите верный способ.
df = pd.DataFrame({
 'num': [25, 12, 15, 14],
 'name': ['txt', 'pdf', 'html', 'csv'],
 'A': [11, 8, 10, 6],
 'B': [4, 9, 9, 2],
 'C': [22, 32, 11, 44]
})


Из этого:

num name A B C
0 25 txt 11 4 22
1 12 pdf 8 9 32
2 15 html 10 9 11
3 14 csv 6 2 44

Нужно получить такой фрейм, т.е отсортировать насквозь только по трем колонкам(A,B,C), по возрастанию:

num name A B C
0 25 txt 4 11 22
1 12 pdf 8 9 32
2 15 html 9 10 11
3 14 csv 2 6 44
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Ну с формулировкой вопроса ты подкачал, это переформатирование фрейма с элементами сортировки подсета данного фрейма. Вообще когда решаешь такую задачу, то индексы фрейма (колонки и индекс) будут тебе мешать, надо переводить подсет данных в numpy массив и там сортировать.

Так или иначе, задачка простая, и решается в одну строчку кода, многими способами , например вот так
df.loc[:,['A','B','C']] = np.sort(df[['A','B','C']].values,axis=1)

Это изменит твой фрейм как ты хочешь, или определенными вариациями данного кода.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы