Maison >base de données >tutoriel mysql >Comment répliquer la fonction DENSE_RANK() de SQL dans Pandas ?

Comment répliquer la fonction DENSE_RANK() de SQL dans Pandas ?

DDD
DDDoriginal
2025-01-12 06:54:43275parcourir

How to Replicate SQL's DENSE_RANK() Function in Pandas?

Réplication de DENSE_RANK() de SQL dans les Pandas DataFrames

Pandas offre un moyen simple d'imiter la fonction DENSE_RANK() de SQL, qui attribue des classements sans espaces même en cas de valeurs liées. Ceci est crucial pour les scénarios nécessitant des attributions de classement consécutives indépendamment des doublons.

Tirer parti de la rank() méthode de Pandas

La solution principale réside dans la méthode rank() de Pandas. En spécifiant l'argument method='dense', nous obtenons le comportement de classement dense souhaité.

Exemple illustratif :

Considérons un exemple de DataFrame :

<code class="language-python">import pandas as pd

data = {'Year': [2012, 2013, 2013, 2014], 'Value': [10, 20, 25, 30]}
df = pd.DataFrame(data)</code>

Pour générer une mise en miroir de la colonne 'Classement' DENSE_RANK(), utilisez ce code :

<code class="language-python">df['Rank'] = df['Year'].rank(method='dense').astype(int)
print(df)</code>

Cela produit le résultat suivant :

<code>   Year  Value  Rank
0  2012     10     1
1  2013     20     2
2  2013     25     2
3  2014     30     3</code>

Remarquez comment les valeurs « Année » à égalité (2013) reçoivent le même classement (2), maintenant ainsi la séquence de classement dense. Le .astype(int) convertit le classement en un type de données entier pour une présentation plus claire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn