ホームページ > データベース > mysql チュートリアル > SQL の DENSE_RANK() 関数を Pandas でレプリケートするにはどうすればよいですか?

SQL の DENSE_RANK() 関数を Pandas でレプリケートするにはどうすればよいですか?

DDD
リリース: 2025-01-12 06:54:43
オリジナル
271 人が閲覧しました

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

Pandas DataFrame で SQL の DENSE_RANK() をレプリケートする

Pandas は、SQL の DENSE_RANK() 関数を模倣する簡単な方法を提供します。この関数は、同値の値に遭遇した場合でもギャップなくランクを割り当てます。 これは、重複に関係なく連続したランクの割り当てが必要なシナリオでは非常に重要です。

Pandas の rank() メソッドを活用する

核となるソリューションは Pandas の rank() メソッドにあります。 method='dense' 引数を指定することで、目的の密なランキング動作を実現します。

例:

サンプルの 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>
ログイン後にコピー

「ランク」列ミラーリング DENSE_RANK() を生成するには、次のコードを使用します:

<code class="language-python">df['Rank'] = df['Year'].rank(method='dense').astype(int)
print(df)</code>
ログイン後にコピー

これにより、次の出力が生成されます:

<code>   Year  Value  Rank
0  2012     10     1
1  2013     20     2
2  2013     25     2
3  2014     30     3</code>
ログイン後にコピー

同点の「年」値 (2013) が同じランク (2) を獲得し、密なランキング順序が維持されることに注目してください。 .astype(int) は、よりわかりやすく表示するためにランクを整数データ型に変換します。

以上がSQL の DENSE_RANK() 関数を Pandas でレプリケートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート