2017-01-27 3 views
3

у меня есть это:Сортировка по две колонки сразу

A B C 
1 4 string1 
2 11 string2 
1 13 string3 
2 43 string4 

И я хочу, чтобы сортировать по А и Б на один раз, чтобы получить это:

A B C 
1 4 string1 
1 13 string3 
2 11 string2 
2 43 string4 

Используя следующие Didn» т делать вид

data = data.sort_values(by=['A','B'], ascending=[True,True]) 
+0

Вы не можете установить индекс к dataframe –

+0

Где вы выполнять естественный вид? – SethMMorton

+0

@SethMMorton, я действительно нашел, что столбец был строкой, а не цифрой, поэтому df неправильно сортировался. Я изменил название и текст, чтобы лучше подобрать ответ для других пользователей. Ed –

ответ

5

Я думаю, вам нужно назначить выход на новый DataFrame параметр ascending можно опустить, так как ascending=True это значение по умолчанию в DataFrame.sort_values:

data = data.sort_values(by=['A','B']) 
print (data) 
    A B  C 
0 1 4 string1 
2 1 13 string3 
1 2 11 string2 
3 2 43 string4 
+0

Кроме того, 'inplace = True' будет работать или переназначить на' data'. – SethMMorton

+0

@SethMMorton Благодарим за комментарий, вы правы, это еще одно возможное решение. 'data.sort_values ​​(by = ['A', 'B'], inplace = True)' 'print (data)' – jezrael

Смежные вопросы