Сортировка Dataframe с использованием панд.Сохраняя колонки в целости - PullRequest
0 голосов
/ 24 октября 2018

Как видно на рисунке ниже, я бы хотел отсортировать чаты по Type в алфавитном порядке.Однако я не хочу портить порядок [Date , User_id] в каждом Chat name.Как мне это сделать, учитывая, что у меня есть входной фрейм данных слева?(Использование панд в питоне)

enter image description here

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

Вы хотите отсортировать значения, используя стабильный алгоритм сортировки , который является mergesort:

df.sort_values(by='Type', kind='mergesort') 

Из связанного ответа:

Алгоритм сортировкисчитается стабильным, если два объекта с одинаковыми ключами появляются в одинаковом порядке в отсортированном выводе и во входном массиве для сортировки.

From pandas docs :

kind: {'quicksort', 'mergesort', 'heapsort'}, по умолчанию 'quicksort'

Выбор алгоритма сортировки.Смотрите также ndarray.np.sort для получения дополнительной информации.mergesort - единственный стабильный алгоритм.Для DataFrames этот параметр применяется только при сортировке по одному столбцу или метке.


Обновление: Как правильно заметил @ALollz, лучше преобразовать всесначала нужно ввести значения в нижний регистр, а затем выполнить сортировку (т. е. в противном случае «Bird» будет помещен перед «aligator» в результате):

df['temp'] = df['Type'].str.lower()
df = df.sort_values(by='temp', kind='mergesort')
df = df.drop('temp', axis=1) 
0 голосов
/ 24 октября 2018
df.sort_values(by=['Type']) [1]

Вы можете сделать свою собственную функцию сортировки [2], строка может сравниваться напрямую stringRow2

[1] https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html [2] Сортировать панды DataFrame с функцией по значениям столбца

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...