Je voudrais sélectionner les entrées supérieures dans une base de données Pandas sur les entrées d'une colonne spécifique en utilisant df_selected = df_targets.head(N)
.Pandas DataFrame tri par colonne catégorielle mais par ordre de classe spécifique
Chaque entrée a une valeur target
(par ordre d'importance):
Likely Supporter, GOTV, Persuasion, Persuasion+GOTV
Malheureusement, si je
df_targets = df_targets.sort("target")
l'ordre alphabétique sera (GOTV
, Likely Supporter
, ...).
J'espérais un mot-clé comme list_ordering
comme dans:
my_list = ["Likely Supporter", "GOTV", "Persuasion", "Persuasion+GOTV"]
df_targets = df_targets.sort("target", list_ordering=my_list)
Pour faire face à ce problème, je crée un dictionnaire:
dict_targets = OrderedDict()
dict_targets["Likely Supporter"] = "0 Likely Supporter"
dict_targets["GOTV"] = "1 GOTV"
dict_targets["Persuasion"] = "2 Persuasion"
dict_targets["Persuasion+GOTV"] = "3 Persuasion+GOTV"
, mais il semble comme une approche non pythonique.
Des suggestions seraient grandement appréciées!
vous dire 'OrderedDict' droite? –
Lire [cette partie] (http://pandas.pydata.org/pandas-docs/stable/categorical.html#reordering) de la documentation. – IanS
Oui, 'OrderedDict' – elzurdo