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 サイトの他の関連記事を参照してください。