Pandas: 複数の列に基づいて度数表を作成する
次の基本構文を使用して、複数の列に基づいてパンダで度数表を作成できます。
df. value_counts ([' column1 ',' column2 '])
次の例は、この構文を実際に使用する方法を示しています。
例: 複数の列に基づいて Pandas で度数表を作成する
チーム名、ポジション、さまざまなバスケットボール選手が獲得したポイントに関する情報を含む次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'G', 'F', 'G', 'G', 'F', 'F'], ' points ': [24, 33, 20, 15, 16, 16, 29, 25]}) #view DataFrame print (df) team position points 0 AG 24 1 AG 33 2 AG 20 3 AF15 4 BG 16 5 BG 16 6 BF 29 7 BF 25
value_counts()関数を使用して、チーム列とポジション列の値の各組み合わせの出現を示す頻度表を作成できます。
#count frequency of values in team and position columns
df. value_counts ([' team ',' position '])
team position
GA 3
BF 2
G2
AF1
dtype: int64
結果から次のことがわかります。
- チームAとポジションGは3回発生します
- チームBとポジションFは2回発生します
- チームBとポジションGは2回発生します
- チーム A とポジション F の出現が1 つあります
代わりに、 reset_index()を使用して DataFrame を返すことができることに注意してください。
#count frequency of values in team and position columns and return DataFrame
df. value_counts ([' team ',' position ']). reset_index ()
team position 0
0 A G 3
1 B F 2
2 B G 2
3 A F 1
rename()関数を使用して、カウントを含む列の名前を変更できます。
#get frequency of values in team and position column and rename count column df. value_counts ([' team ',' position ']). reset_index (). rename (columns={0:' count '}) team position count 0 A G 3 1 B F 2 2 B G 2 3 A F 1
最終結果は、 「チーム」列と「ポジション」列の値の一意の組み合わせの頻度を含むデータフレームです。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
パンダ: GroupBy と値のカウントの使用方法
パンダ: ビン数で GroupBy を使用する方法
Pandas: 条件付きで列の値をカウントする方法