Pandas で DENSE_RANK 機能を実装する同等の方法
パンダは多くの場合、グループ内の値をランク付けする必要があり、重複する値は同じランクを持つとみなされます。これを行うには、pd.Series.rank
関数、具体的には 'dense'
メソッドを使用します。
次のデータ フレームを例に挙げます:
年份 | 数值 |
---|---|
2012 | 10 |
2013 | 20 |
2013 | 25 |
2014 | 30 |
私たちの目標は、「年」列に基づいて密なランキングを割り当てる「ランク」という新しい列を作成することです。その結果、次のようになります。
年份 | 数值 | 排名 |
---|---|---|
2012 | 10 | 1 |
2013 | 20 | 2 |
2013 | 25 | 2 |
2014 | 30 | 3 |
これには、次のコードを使用できます:
<code class="language-python">df['排名'] = df.年份.rank(method='dense').astype(int)</code>
pd.Series.rank
この関数は、シリーズ内の各要素のランキングを計算します。メソッドとして 'dense'
を指定することで、同じ値を持つ要素に同じランクを割り当てるように指示します。最後に、.astype(int)
を使用して結果を整数データ型に変換します。
コードの出力により、以下に示すように、データ フレームに新しい「ランク」列が生成されます。
<code> 年份 数值 排名 0 2012 10 1 1 2013 20 2 2 2013 25 2 3 2014 30 3</code>
以上がPandas に DENSE_RANK 機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。