Heim >Datenbank >MySQL-Tutorial >Wie repliziere ich die DENSE_RANK()-Funktion von SQL in Pandas?

Wie repliziere ich die DENSE_RANK()-Funktion von SQL in Pandas?

DDD
DDDOriginal
2025-01-12 06:54:43272Durchsuche

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

Replikation von SQLs DENSE_RANK() in Pandas DataFrames

Pandas bietet eine einfache Möglichkeit, die DENSE_RANK()-Funktion von SQL nachzuahmen, die Ränge lückenlos zuweist, selbst wenn Werte auf Gleichstand stoßen. Dies ist von entscheidender Bedeutung für Szenarien, die unabhängig von Duplikaten aufeinanderfolgende Rangzuweisungen erfordern.

Nutzung der rank() Methode von Pandas

Die Kernlösung liegt in der rank()-Methode von Pandas. Durch die Angabe des method='dense'-Arguments erreichen wir das gewünschte dichte Ranking-Verhalten.

Anschauliches Beispiel:

Betrachten wir einen Beispiel-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>

Um eine „Rang“-Spaltenspiegelung zu generieren DENSE_RANK(), verwenden Sie diesen Code:

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

Dies erzeugt die folgende Ausgabe:

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

Beachten Sie, dass die gleichrangigen „Jahr“-Werte (2013) denselben Rang erhalten (2), wobei die dichte Rangfolge beibehalten wird. Das .astype(int) wandelt den Rang zur übersichtlicheren Darstellung in einen ganzzahligen Datentyp um.

Das obige ist der detaillierte Inhalt vonWie repliziere ich die DENSE_RANK()-Funktion von SQL in Pandas?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn