Pandas: 条件付きで列の値をカウントする方法
次のメソッドを使用して、特定の条件で Pandas DataFrame 列の値の数をカウントできます。
方法 1: 条件付きで列の値をカウントする
len(df[df[' col1 ']==' value1 '])
方法 2: 条件付きで複数の列の値をカウントする
len(df[(df[' col1 ']==' value1 ') & (df[' col2 ']==' value2 ')])
次の例は、次の pandas DataFrame で各メソッドを実際に使用する方法を示しています。
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
' pos ': ['Gu', 'Fo', 'Fo', 'Fo', 'Gu', 'Gu', 'Fo', 'Fo'],
' points ': [18, 22, 19, 14, 14, 11, 20, 28]})
#view DataFrame
print (df)
team pos points
0 A Gu 18
1 A Fo 22
2 A Fo 19
3 A Fo 14
4 B Gu 14
5 B Gu 11
6 B Fo 20
7 B Fo 28
例 1: 条件付きで列の値をカウントする
次のコードは、値が「A」に等しいチーム列の値の数をカウントする方法を示しています。
#count number of values in team column where value is equal to 'A' len(df[df[' team ']==' A ']) 4
チーム列には、値が「A」に等しい値が4 つあることがわかります。
例 2: 条件付きで複数の列の値をカウントする
次のコードは、チーム列が「B」に等しく、 pos列が「Gu」に等しいデータフレーム内の行数をカウントする方法を示しています。
#count rows where team is 'B' and pos is 'Gu' len(df[(df[' team ']==' B ') & (df[' pos ']==' Gu ')]) 2
DataFrame には、これらの条件の両方を満たす行が2 つあることがわかります。
同様の構文を使用して、必要な数の条件を満たす行の数をカウントできます。
たとえば、次のコードは、3 つの条件を満たす行の数をカウントする方法を示しています。
- チームは「B」に等しい
- pos は「Gu」に等しい
- ポイントが 12 より大きい
#count rows where team is 'B' and pos is 'Gu' and points > 15 len(df[(df[' team ']==' B ') & (df[' pos ']==' Gu ') & (df[' points ']> 12 )]) 1
DataFrame の1行が 3 つの条件をすべて満たしていることがわかります。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
パンダ: 2 つの線の違いを見つける方法
Pandas: 特定の文字列を含む行を削除する方法
パンダ: DataFrame 内の重複行を削除する方法