パンダ: 列の値に基づいて行を選択する方法


次のいずれかのメソッドを使用して、列の値に基づいて 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 の任意の列に値が表示される行を選択する方法

コメントを追加する

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