パンダ: 複数の列に isin を使用する方法
pandas isin()関数で次のメソッドを使用すると、pandas DataFrame の複数の列に基づいてフィルタリングできます。
方法 1: 複数の列が特定の値と等しい場合にフィルターする
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]
この特定の例では、チーム列が「A」に等しく、ポジション列が「ガード」に等しい行のデータフレームをフィルターします。
方法 2: 少なくとも 1 つの列が特定の値と等しいフィルター
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]
この特定の例では、チーム列が「A」またはポジション列が「Guard」に等しい行のデータフレームをフィルターします。
次の例は、次の pandas DataFrame で各メソッドを実際に使用する方法を示しています。
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['Guard', 'Guard', 'Forward', 'Forward', 'Guard', 'Guard', 'Forward', 'Forward'], ' points ': [11, 18, 10, 22, 26, 35, 19, 12]}) #view DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18 2 A Forward 10 3 A Forward 22 4 B Guard 26 5 B Guard 35 6 B Forward 19 7 B Forward 12
例 1: 複数の列が特定の値と等しい場合のフィルター
次の構文を使用して、データフレームをフィルタリングして、チーム列が「A」に等しく、ポジション列が「Guard」に等しい行のみを含めることができます。
#filter rows where team column is 'A' and position column is 'Guard' df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )] #view filtered DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18
フィルターされたデータフレームには、チーム列が「A」に等しく、ポジション列が「Guard」に等しい行のみが残ることに注意してください。
例 2: 少なくとも 1 つの列が特定の値と等しいフィルター
次の構文を使用して、チーム列が「A」に等しい行、またはポジション列が「ガード」に等しい行のみを含むようにデータフレームをフィルタリングできます。
#filter rows where team column is 'A' or position column is 'Guard' df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )] #view filtered DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18 2 A Forward 10 3 A Forward 22 4 B Guard 26 5 B Guard 35
フィルターされたデータフレームには、チーム列が「A」に等しい行、またはポジション列が「ガード」に等しい行のみが残ることに注意してください。
注: pandas isin()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
パンダ: ピボット テーブルにフィルターを追加する方法
パンダ: 「次の内容を含まない」をフィルタリングする方法
パンダ: 特定の文字列を含む行をフィルターする方法