パンダ: 列の値に基づいて行を選択する方法
次のいずれかのメソッドを使用して、列の値に基づいて pandas DataFrame 内の行を選択できます。
方法 1: 列が特定の値に等しい行を選択する
df. loc [df[' col1 '] == value]
方法 2: 値のリストで列値が見つかった行を選択する
df. loc [df[' col1 ']. isin ([value1, value2, value3, ...])]
方法 3: 複数の列条件に基づいて行を選択する
df. loc [(df[' col1 '] == value) & (df[' col2 '] < value)]
次の例は、次の pandas DataFrame で各メソッドを使用する方法を示しています。
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
' points ': [5, 7, 7, 9, 12, 9, 9, 4],
' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12],
' blocks ': [4, 7, 7, 6, 5, 8, 9, 10]})
#view DataFrame
df
team points rebound blocks
0 A 5 11 4
1 To 7 8 7
2 B 7 10 7
3 B 9 6 6
4 B 12 6 5
5 C 9 5 8
6 C 9 9 9
7 C 4 12 10
方法 1: 列が特定の値に等しい行を選択する
次のコードは、「points」列が 7 に等しい DataFrame の各行を選択する方法を示しています。
#select rows where 'points' column is equal to 7
df. loc [df[' points '] == 7]
team points rebound blocks
1 To 7 8 7
2 B 7 10 7
方法 2: 値のリストで列値が見つかった行を選択する
次のコードは、「points」列が 7、9、または 12 に等しい DataFrame の各行を選択する方法を示しています。
#select rows where 'points' column is equal to 7
df. loc [df[' points ']. isin ([7, 9, 12])]
team points rebound blocks
1 To 7 8 7
2 B 7 10 7
3 B 9 6 6
4 B 12 6 5
5 C 9 5 8
6 C 9 9 9
方法 3: 複数の列条件に基づいて行を選択する
次のコードは、「チーム」列が「B」に等しく、「ポイント」列が 8 より大きい DataFrame の各行を選択する方法を示しています。
#select rows where 'team' is equal to 'B' and points is greater than 8
df. loc [(df[' team '] == ' B ') & (df[' points '] > 8)]
team points rebound blocks
3 B 9 6 6
4 B 12 6 5
チームが「B」に等しく、「ポイント」が 8 より大きい 2 行のみが返されることに注意してください。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。
Pandas でインデックスによって行を選択する方法
Pandas で単一の行を選択する方法
Pandas の任意の列に値が表示される行を選択する方法