Tri de la série Pandas

Tri de la série Pandas
Dans cet article, nous examinerons différentes façons de trier une série Pandas. Ouvrez Python dans le terminal en utilisant la commande python. Une fois que le terminal ouvre Python, importez des pandas. Pandas est la bibliothèque Python qui contient l'objet de la série. $ python
Python 2.7.18 (par défaut, 8 mars 2021, 13:02:45)
[GCC 9.3.0] sur Linux2
Tapez "Help", "Copyright", "Crédits" ou "Licence" pour plus d'informations.
>>> Importer des pandas comme PD

Une série Pandas est un tableau unidimensionnel avec des étiquettes d'axe (index). Les étiquettes n'ont pas besoin d'être uniques, mais elles doivent être hashable. L'objet de la série permet à l'utilisateur de stocker une collection de types de variables similaires. Il peut stocker n'importe quel type de données - entier, flotteur, objets, etc. Un objet série peut être trié de plusieurs manières en utilisant différents paramètres dans son appel. Une série peut être initialisée à l'aide de la commande PD.Série. Par défaut, Pandas trie l'objet de la série dans l'ordre croissant.

>>> s = pd.Série ([6, 3, 8, 2, 9])
>>> s.sort_values ​​()
3 2
1 3
0 6
2 8
4 9
DTYPE: INT64

Le tri des valeurs dans l'ordre descendant peut être réalisé en utilisant le paramètre Ascendant. Par établissement Ascendant pour FAUX, La série peut être triée par ordre décroissant.

>>> s.sort_values ​​(ascendant = false)
4 9
2 8
0 6
1 3
3 2
DTYPE: INT64

Par défaut, l'appel à sort_values Renvoie une copie de l'objet de la série. Pour les ensembles de données de grande taille, cela n'est pas viable car il se traduit par la génération d'une nouvelle copie des données. Pour éviter cela, l'opération de tri peut être effectuée sur place en utilisant le en place mot-clé. En attribuant en place comme Vrai, Il fait en place l'objet de la série sans prendre de place supplémentaire.

>>> s.sort_values ​​(ascendant = false, inplace = true)
>>> s
4 9
2 8
0 6
1 3
3 2
DTYPE: INT64

Dans le cas ci-dessus, notez qu'aucune copie supplémentaire des données n'est renvoyée.

Les Pandas permettent à l'utilisateur de choisir l'algorithme de tri pour effectuer l'opération de tri. On peut définir l'algorithme de tri à l'aide du type paramètre. Le type Le paramètre prend l'une des valeurs suivantes comme arguments: Quicksort, Mergesort, Heapsort. Par défaut, l'algorithme QuickSort est utilisé pour trier les valeurs.

>>> s.sort_values ​​(kind = 'Quicksort')
3 2
1 3
0 6
2 8
4 9
DTYPE: INT64

Parfois, un objet de série contient N / A valeurs. Les valeurs NA sont les valeurs qui manquent dans l'objet série. Les valeurs NA peuvent être placées soit au début du tableau, soit dans le dernier tableau. La position peut être attribuée en utilisant le paramètre NA_POSITION.

>>> s = pd.Série ([6, 3, 8, np.nan, 2, 9])
>>> s.sort_values ​​(na_position = 'dernier')
4 2.0
1 3.0
0 6.0
2 8.0
5 9.0
3 Nan
dtype: float64

Le N / A Les valeurs peuvent également être supprimées avant de trier. Cela peut être réalisé en utilisant la commande dropna.

>>> s = pd.Série ([6, 3, 8, np.nan, 2, 9])
>>> s.dropna ().sort_values ​​(na_position = 'dernier')
4 2.0
1 3.0
0 6.0
2 8.0
5 9.0
dtype: float64

Pendant le type, nous observons que l'indice reste le même pour le nouveau tableau trié. L'index peut être ignoré en utilisant le paramètre ignorer_index. Il faut une valeur bool: Vrai ou FAUX. Si Vrai, L'indice est ignoré dans la sortie. Par défaut, c'est FAUX.

>>> s.sort_values ​​(ignore_index = true, na_position = 'premier')
0 Nan
1 2.0
2 3.0
3 6.0
4 8.0
5 9.0
dtype: float64

Parfois, il est pratique d'utiliser une fonction clé pour trier les valeurs. Dans de tels cas, on peut transmettre explicitement la fonction clé en utilisant le clé paramètre. Pour le tri en utilisant le clé fonction, la fonction clé est appliquée aux valeurs de la série avant de tri. Considérez l'exemple ci-dessous, qui n'utilise pas clé paramètres.

>>> s = pd.Série (data = ['a', 'b', 'c', 'd'])
>>> s.sort_values ​​()
1 b
3 D
0 a
2 c
dtype: objet

La série ci-dessus peut être triée en utilisant clé paramètre comme suit.

>>> s.sort_values ​​(key = lambda x: x.Str.inférieur())
0 a
1 b
2 c
3 D
dtype: objet

Au lieu d'une fonction lambda, nombant Les fonctions pourraient également être utilisées comme clé les fonctions. Dans la fonction ci-dessous, l'ordre trié est évalué à l'aide du NP.fonction sin qui calcule le sinus valeur et l'utilise comme clé de tri.

>>> Importer Numpy comme NP
>>> s = pd.Série ([1, 2, 3, 4, 5])
>>> s.sort_values ​​(key = np.péché)
4 5
3 4
2 3
0 1
1 2
DTYPE: INT64

Un objet série peut également être trié par la valeur d'index. Considérez l'exemple ci-dessous. Pour trier par index, nous appelons sort_index.

>>> s = pd.Série (data = [1, 2, 3, 4], index = ['d', 'b', 'c', 'a'])
>>> s.sort_index ()
A 4
b 2
c 3
D 1
DTYPE: INT64

Le tri par un index est le même à toutes les manières que le tri par les valeurs, y compris les paramètres, sauf qu'il fonctionne sur l'index plutôt que sur les données.