python, trie DataFrame descendant avec pandas
j'essaie de trier une base de données en descendant. J'ai mis 'False' dans l'argument ascendant, mais mon ordre est encore Ascendant.
Mon code est:
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])
mais la sortie est
letter one two
2 b 1 3
0 a 2 5
1 a 3 4
3 b 4 2
4 c 5 1
4 réponses
Edit: C'est hors de date, voir @Merlin de réponse.
[False]
, étant un non vide liste qui n'est pas le même que False
. Vous devriez écrire:
test = df.sort('one', ascending=False)
Nouvelle syntaxe ():
test = df.sort_values(['one'], ascending=[False])
test = df.sort_values(['one'], ascending=[0])
Pour les pandas 0,17 et au-dessus, utilisez ceci :
test = df.sort_values('one', ascending=False)
puisque ' one ' est une série dans le cadre de données pandas, pandas n'acceptera donc pas les arguments sous la forme d'une liste.
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort_values.html
je ne pense pas que vous devriez jamais fournir de l' False
valeur entre crochets (jamais), aussi les valeurs de la colonne quand ils sont plus d'un, alors qu'ils sont présentés dans une liste! Pas comme ['one']
.
test = df.sort_values(by='one', ascending = False)