Maison >base de données >tutoriel mysql >Comment répliquer la fonction DENSE_RANK() de SQL dans 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!