Pandas: 別の列に基づいて列値を抽出します


pandas でquery()関数を使用すると、ある列の値を別の列の値に基づいて抽出できます。

この関数は次の基本構文を使用します。

 df. query (" team=='A' ")[" points "]

この特定の例では、チーム列が A に等しいポイント列から各値を抽出します。

次の例は、実際に次の pandas DataFrame でこの構文を使用する方法を示しています。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [11, 28, 10, 26, 6, 25, 29, 12]})

#view DataFrame
print (df)

  team position points
0 AG 11
1 AG 28
2 AF10
3AF 26
4 BG 6
5 BG 25
6 BF 29
7 BF 12

例 1: 満たされた条件に基づいて列の値を抽出する

次のコードは、チーム列の値が「A」に等しいポイント列から各値を抽出する方法を示しています。

 #extract each value in points column where team is equal to 'A'
df. query (" team=='A' ")[" points "]

0 11
1 28
2 10
3 26
Name: points, dtype: int64

この関数は、チーム列の対応する値が「A」に等しいポイント列の 4 つの値を返します。

例 2: 満たされた多くの条件の 1 つに基づいて列の値を抽出する

次のコードは、チーム列の値が「A」に等しいか、ポジション列の値が「G」に等しいポイント列から各値を抽出する方法を示しています。

 #extract each value in points column where team is 'A' or position is 'G'
df. query (" team=='A' | position=='G' ")[" points "]

0 11
1 28
2 10
3 26
4 6
5 25
Name: points, dtype: int64

この関数は、チーム列の対応する値が「A」に等しいか、ポジションの値が「G」に等しい、ポイント列の 6 つの値を返します。

例 3: 満たされた複数の条件に基づいて列の値を抽出する

次のコードは、チーム列の値が「A」に等しくポジション列の値が「G」に等しいポイント列から各値を抽出する方法を示しています。

 #extract each value in points column where team is 'A' and position is 'G'
df. query (" team=='A' & position=='G' ")[" points "]

0 11
1 28
Name: points, dtype: int64

この関数は、チーム列の対応する値が「A」に等しくポジション列の値が「G」に等しい、ポイント列の 2 つのを返します。

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

パンダ: 条件に基づいて列を選択する方法
Pandas: 複数の条件に基づいて行を削除します
Pandas: 別の DataFrame に基づいて列の値を更新します

コメントを追加する

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