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

Ссылка скопирована
1 ответ

Добрый день! Хочу отсортировать поля в трех столбцах таблицы, подскажите верный способ.

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] })

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

Дополнительно:

Ну с формулировкой вопроса ты подкачал, это переформатирование фрейма с элементами сортировки подсета данного фрейма. Вообще когда решаешь такую задачу, то индексы фрейма (колонки и индекс) будут тебе мешать, надо переводить подсет данных в numpy массив и там сортировать.

Так или иначе, задачка простая, и решается в одну строчку кода, многими способами , например вот так

df.loc[:,['A','B','C']] = np.sort(df[['A','B','C']].values,axis=1)

df.loc[:,['A','B','C']] = np.sort(df[['A','B','C']].values,axis=1)

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

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Елена Вебер Ответ

Для выполнения сквозной сортировки индексов в DataFrame в pandas вам нужно использовать метод `sort_values()`. Этот метод позволяет сортировать значения в DataFrame по заданным столбцам или индексам.

Например, если у вас есть DataFrame `df` с индексами, и вы хотите выполнить сквозную сортировку по этим индексам, вы можете использовать следующий код на языке Python:

import pandas as pd
 
# Создание DataFrame
data = {'A': [1, 2, 3, 4],
        'B': [5, 6, 7, 8]}
df = pd.DataFrame(data)
 
# Установка индексов
df.set_index(['A'], inplace=True)
 
# Сортировка индексов
df.sort_values(by='A', inplace=True)

import pandas as pd # Создание DataFrame data = {'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]} df = pd.DataFrame(data) # Установка индексов df.set_index(['A'], inplace=True) # Сортировка индексов df.sort_values(by='A', inplace=True)

В этом примере мы сначала устанавливаем столбец 'A' в качестве индекса для DataFrame `df`, а затем выполняем сквозную сортировку по этим индексам.

Если вам нужно отсортировать индексы в порядке убывания, вы можете передать параметр `ascending=False` в метод `sort_values()`:

df.sort_values(by='A', ascending=False, inplace=True)

df.sort_values(by='A', ascending=False, inplace=True)

Таким образом, вы можете легко выполнить сквозную сортировку индексов в DataFrame с помощью метода `sort_values()` в библиотеке pandas.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно