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
Libérer: 2025-01-12 06:54:43
original
296 Les gens l'ont consulté

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 :

import pandas as pd

data = {'Year': [2012, 2013, 2013, 2014], 'Value': [10, 20, 25, 30]}
df = pd.DataFrame(data)
Copier après la connexion

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

df['Rank'] = df['Year'].rank(method='dense').astype(int)
print(df)
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal