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 内の重複行を削除する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です