Quelle est la différence entre les pandas.qcut et les pandas.couper?
La documentation dit:
http://pandas.pydata.org/pandas-docs/dev/basics.html
"Valeurs continues peuvent être discrétisées à l'aide de la découpe (bacs basée sur les valeurs) et qcut (bacs basés sur un échantillon de quantiles) fonctions"
Semble très abstrait pour moi... je peux voir les différences dans l'exemple ci-dessous, mais ce n'qcut (sample quantiles) réellement faire/dire? Quand souhaitez-vous utiliser qcut rapport à couper?
Grâce.
factors = np.random.randn(30)
In [11]:
pd.cut(factors, 5)
Out[11]:
[(-0.411, 0.575], (-0.411, 0.575], (-0.411, 0.575], (-0.411, 0.575], (0.575, 1.561], ..., (-0.411, 0.575], (-1.397, -0.411], (0.575, 1.561], (-2.388, -1.397], (-0.411, 0.575]]
Length: 30
Categories (5, object): [(-2.388, -1.397] < (-1.397, -0.411] < (-0.411, 0.575] < (0.575, 1.561] < (1.561, 2.547]]
In [14]:
pd.qcut(factors, 5)
Out[14]:
[(-0.348, 0.0899], (-0.348, 0.0899], (0.0899, 1.19], (0.0899, 1.19], (0.0899, 1.19], ..., (0.0899, 1.19], (-1.137, -0.348], (1.19, 2.547], [-2.383, -1.137], (-0.348, 0.0899]]
Length: 30
Categories (5, object): [[-2.383, -1.137] < (-1.137, -0.348] < (-0.348, 0.0899] < (0.0899, 1.19] < (1.19, 2.547]]`
Vous devez vous connecter pour publier un commentaire.
Pour commencer, notez que les quantiles est simplement la plus terme général pour des choses comme les percentiles, les quartiles et les médianes. Vous avez spécifié cinq bacs de rangement dans votre exemple, si vous demandez
qcut
pour les quintiles.Donc, lorsque vous demandez des quintiles avec
qcut
, les bacs seront choisis de sorte que vous avez le même nombre d'enregistrements dans chaque bin. Vous disposez de 30 enregistrements, donc doit avoir 6 dans chaque cellule (votre sortie doit ressembler à ceci, bien que les points d'arrêt seront différents en raison du tirage au sort):A l'inverse, pour
cut
vous verrez quelque chose de plus inégale:C'est parce que
cut
va choisir les bacs à être régulièrement espacées selon les valeurs elles-mêmes et de ne pas le fréquence de ces valeurs. Donc, parce que vous avez dessiné à partir d'un aléatoire normale, vous verrez des fréquences plus élevées à l'intérieur des bacs de moins en moins dans l'extérieur. C'est essentiellement va être la forme de tableaux d'un histogramme (qui vous attendent à être assez en forme de cloche avec 30 dossiers).cut
ou vous risquez de soins de plus sur la plus haute de 5% et l'utilisationqcut
Donc qcut assure une distribution plus homogène des valeurs dans chaque bin même si elles se regroupent dans l'exemple de l'espace. Cela signifie que vous êtes moins susceptibles d'avoir un bac plein de données avec de très près des valeurs et une autre poubelle avec les valeurs à 0. En général, il est préférable d'échantillonnage.