python, sort descending dataframe with pandas

Question:

I’m trying to sort a dataframe by descending.
I put ‘False’ in the ascending argument, but my order is still ascending.

My code is:

from pandas import DataFrame
import pandas as pd

d = {'one':[2,3,1,4,5],
     'two':[5,4,3,2,1],
     'letter':['a','a','b','b','c']}

df = DataFrame(d)

test = df.sort(['one'], ascending=[False])

but the output is

  letter  one  two
2      b    1    3
0      a    2    5
1      a    3    4
3      b    4    2
4      c    5    1
Asked By: user3636476

||

Answers:

Edit: This is out of date, see @Merlin’s answer.

[False], being a nonempty list, is not the same as False. You should write:

test = df.sort('one', ascending=False)
Answered By: U2EF1

New syntax (either):

 test = df.sort_values(['one'], ascending=[False])
 test = df.sort_values(['one'], ascending=[0])
Answered By: Merlin

For pandas 0.17 and above, use this :

test = df.sort_values('one', ascending=False)

Since ‘one’ is a series in the pandas data frame, hence pandas will not accept the arguments in the form of a list.

Answered By: Arko

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html

I don’t think you should ever provide the False value in square brackets (ever), also the column values when they are more than one, then only they are provided as a list! Not like ['one'].

test = df.sort_values(by='one', ascending = False)
Answered By: aspiring1
from pandas import DataFrame
import pandas as pd

d = {'one':[2,3,1,4,5],
 'two':[5,4,3,2,1],
 'letter':['a','a','b','b','c']}

df = DataFrame(d)

test = df.sort_values(['one'], ascending=False)
test
Answered By: Vivekanand AIML

from pandas import DataFrame import pandas as pd

d = {‘one’:[2,3,1,4,5], ‘two’:[5,4,3,2,1], ‘letter’:[‘a’,’a’,’b’,’b’,’c’]}

df = DataFrame(d)

#check below statement

df.groupby(["one"]).count().sort_values("one", ascending=False)

Answered By: Yogesh Patil
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.