パンダ: 2 つの列の一意の組み合わせを数える方法
次の構文を使用して、pandas DataFrame の 2 つの列にわたる一意の組み合わせの数をカウントできます。
df[[' col1 ', ' col2 ']]. value_counts (). reset_index (name=' count ')
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas の 2 つの列の一意の組み合わせをカウントする
さまざまなバスケットボール選手のチームとポジションを示す次のパンダ データフレームがあるとします。
import pandas as pd #create dataFrame df = pd. DataFrame ({' team ': ['Mavs', 'Mavs', 'Mavs', 'Mavs', 'Heat', 'Heat', 'Heat', 'Heat'], ' position ': ['Guard', 'Guard', 'Guard', 'Forward', 'Guard', 'Forward', 'Forward', 'Guard']}) #view DataFrame df team position 0 Mavs Guard 1 Mavs Guard 2 Mavs Guard 3 Mavs Forward 4 Heat Guard 5 Heat Forward 6 Heat Forward 7 Heat Guard
次の構文を使用して、一意のチームとポジションの組み合わせの数をカウントできます。
df[[' team ', ' position ']]. value_counts (). reset_index (name=' count ') team position count 0 Mavs Guard 3 1 Heat Forward 2 2 Heat Guard 2 3 Mavs Forward 1
結果から次のことがわかります。
- マブスとガードの組み合わせは3回発生します。
- Heat-Forward の組み合わせは2回あります。
- ヒートガードの組み合わせは2 つあります。
- Mavs-Forward の組み合わせは1 回発生します。
結果を昇順または降順で並べ替えることもできることに注意してください。
たとえば、次のコードを使用して、結果を数値の昇順に並べ替えることができます。
df[[' team ', ' position ']]. value_counts (ascending= True ). reset_index (name=' count ') team position count 0 Mavs Forward 1 1 Heat Forward 2 2 Heat Guard 2 3 Mavs Guard 3
結果は、最小値から最大値の順に並べ替えられるようになりました。
注: pandas value_counts()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
パンダ: GroupBy と値のカウントの使用方法
パンダ: ビン数で GroupBy を使用する方法
Pandas: 値の数を含むピボット テーブルを作成する方法