trier une Série de Pandas?

Désolé, je pense que je suis absent quelque chose de très basique ici:

>>> Series([3,4,0,3]).sort()

sorties Aucun, tandis que

>>> Series([3,4,0,3]).order()
2    0
0    3
3    3
1    4
dtype: int64

qu'est-ce que je manque avec sort()?

Merci

EDIT:

Merci pour les réponses, je réalise maintenant que c'est le tri en place. Mais je ne comprends pas pourquoi

>>> s = Series([3,4,0,3]).sort()
>>> s

ne renvoie pas les séries triées. Si je comprends manuel il devrait retourner la série triée en lieu.

10
demandé sur meto 2014-06-05 03:56:09

3 réponses

.sort() trie place.

cela signifie Que, après que vous appelez .sort(), le tableau existant a été trié. Elle ne retourne rien.

Pour prendre un exemple "de base" de Python:

In [175]: L = [2, 3, 1, 5]

In [176]: L.sort()

In [177]: print(L)
[1, 2, 3, 5]

C'est la même chose pour les Pandas, comme le montre Pandas.trier:

trier les valeurs et les étiquettes d'index par valeur, en place. Pour la compatibilité avec l'API ndarray. Pas de retour valeur

Voir aussi: Quelle est la différence entre les séries?sort() et de la Série.commande()?

4
répondu gerrit 2017-05-23 12:02:20
In [1]: import pandas as pd
In [2]: s = pd.Series([3,4,0,3]).sort()
In [3]: s

en Effet In [3] sortie de rien, comme vous pouvez vérifier:

In [4]: type(s)
Out[4]: NoneType

La raison:

pd.Series([3,4,0,3]) en effet retourner un pandas Series type d'objet, MAIS Series.sort() méthode return à cause de in place tri. Si l'expression s = pd.Series([3,4,0,3]).sort(),s dans LHS obtiendrez rien de RHS, donc In [3]: s ne produit rien.

notez que:

Après la version 0.17.0, le tri par valeur méthode pandas.Series.sort() et pandas.Series.order() sont dépréciés, remplacés par unpandas.Series.sort_values() API. Voir cette réponse pour plus de détails.

4
répondu YaOzI 2017-05-23 12:25:58

comme avec la plupart des autres itérables python, série.sort() ne retourne en fait rien, mais trie la Série. Voir par exemple tri d'une liste python:

In [2]: foo = [5, 3, 9]

In [3]: foo.sort()

In [4]: foo
Out[4]: [3, 5, 9]
0
répondu Christian Geier 2014-06-05 00:03:39