У меня есть следующий кадр данных:Как отсортировать кадр данных pandas, используя значения из нескольких столбцов?
df = pandas.DataFrame([{'c1':3,'c2':10},{'c1':2, 'c2':30},{'c1':1,'c2':20},{'c1':2,'c2':15},{'c1':2,'c2':100}])
Или в читабельной форме:
c1 c2
0 3 10
1 2 30
2 1 20
3 2 15
4 2 100
следующие сортировочно-команда работает, как ожидалось:
df.sort(['c1','c2'], ascending=False)
Выход:
c1 c2
0 3 10
4 2 100
1 2 30
3 2 15
2 1 20
Но следующая команда:
df.sort(['c1','c2'], ascending=[False,True])
приводит
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
и это не то, что я ожидал. Я ожидаю, что значения в первом столбце упорядочены от наибольшего к наименьшему, и если в первом столбце есть одинаковые значения, порядок по восходящим значениям из второго столбца.
Кто-нибудь знает, почему он не работает должным образом?
ДОБАВЛЕНО
Это копипаст:
>>> df.sort(['c1','c2'], ascending=[False,True])
c1 c2
2 1 20
3 2 15
1 2 30
4 2 100
0 3 10
Какую версию панд и numpy вы используете? –