Pandasデータフレーム-2つの列のIDに基づいて、一致する行を検索します

PawełRumian

データフレームがあります。次のように定義されているとしましょう。

df = pd.DataFrame({
'variable' : ["A","A","B","B","A","B","B","A"],
'id1' : [1,2,3,4,5,6,7,8],
'id2' : ['NaN','NaN',2,'NaN',4,3,'NaN',5]
})

したがって、結果は次のようになります。

   id1  id2 variable1
0    1  NaN         A
1    2  NaN         A
2    3    2         B
3    4  NaN         B
4    5    4         A
5    6    3         B
6    7  NaN         B
7    8    5         A

今私が達成したいのは:

  1. ある行が別の行id2と等しい行を一致させid1ます。したがって、この特定の例では、ペアの行は次のようになります。

    (2、1)-なぜなら df.iloc[2]['id2'] == df.iloc[1]['id1']

    その後:(4、3)、(5、2)、(7、4)

  2. これらのペアからvariable1、ペア内で一定であるもののみを選択します。したがって、上記のペアからは、(5、2)と(7、4)のみが残ります。

    df.iloc[5]['variable1'] == df.iloc[2]['variable1']

    (例はもちろん最初のペアに有効です)。

さて、これが純粋なPythonの場合、IDとの等価性をチェックするid1を含む2つのリストを反復処理するでしょうが、もっと配列指向の方法があるはずです...id2variable

おそらく、重複したデータフレームを作成するとの交点を行うid1id2しますか。それとも、まったく別のアイデアを検討する必要がありますか?

フィルマー

これはどう?

# Add index column:
df = df.reset_index()

df2 = pd.merge(
         df, df
         left_on="id1", right_on="id2"
        ).query("variable_x == variable_y")

list(df2[["index_x", "index_y"]].itertuples(index=False))

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

pandasデータフレームの条件付きグループに基づいて一致する行を検索します

分類Dev

一致する行基準と共有列に基づいて2つのデータフレームをマージします

分類Dev

R:別のデータフレームの一致する行に基づいて列を更新します

分類Dev

2つのデータフレーム間の比較一致に基づいて列を作成します

分類Dev

2列の一致する行に基づいて2つのデータフレームをパンダとマージします

分類Dev

2つのデータフレームの行が一致するかどうかに基づいて新しい列を作成します

分類Dev

2つのデータフレームを比較し、一致する列の値に基づいてdfから行を削除します

分類Dev

2つのデータフレーム間の部分的な文字列に基づいて一致する行を取得します

分類Dev

データフレーム内の2つの異なる列間の一致に基づいて行を削除します

分類Dev

特定の列に基づいて2つのデータフレームの不一致を検出します

分類Dev

2番目のデータフレームの一致する列に基づいてパンダのデータフレームを更新します

分類Dev

2つの列間の一致する値(正確)に基づいてデータフレームをフィルタリングします

分類Dev

パンダは、一致する複数の列値に基づいて2つのデータフレームをマージします

分類Dev

一致する列データに基づいて2つのCSVファイルを結合します

分類Dev

別のデータフレームの一致するIDに基づいてデータフレーム列の値を置き換えます

分類Dev

Pandasデータフレーム:新しい列を作成し、2つの異なる列に基づいて一致する行に値を挿入します

分類Dev

2つのデータフレームからの2つの既存の列間の一致に基づいて頻度を追加します

分類Dev

Python:データフレームからデータを行検索し、一致する列に基づいて別のデータフレームで乗算する方法

分類Dev

列値のペア間の最も近い一致に基づいて2つのデータフレームをマージします

分類Dev

別のデータフレームの一致する列に基づいてランダムな量の行を削除します

分類Dev

Rの2つのデータフレームの2つの列の一致するペア名に基づいて、別のデータフレームの他の値に値を追加します

分類Dev

2つの数値列に基づいて2つのデータフレームを比較し、互いに数値のしきい値内で一致する行を見つけます

分類Dev

2つのデータフレームの列名が一致する場合に値を検索します

分類Dev

複数の選択基準に一致する2つの異なるデータフレームの行に基づいて3番目のデータフレームを構築します

分類Dev

完全一致なしで最も近い一致に基づいて2つのデータフレームをマージする

分類Dev

2つのデータフレームで一致した値に基づいてインクリメンタルIDを生成する

分類Dev

部分的な文字列の一致に基づいて、別のデータフレームから1つのデータフレーム列を埋めます

分類Dev

1 つのデータフレームの 2 つの変数を「回答キー」データフレームの「キー」に一致させることに基づいて、「回答キー」データフレームから値を取得します。

分類Dev

一致する値に基づいて2つのpysparkデータフレームを結合します(特定の小数点まで)

Related 関連記事

  1. 1

    pandasデータフレームの条件付きグループに基づいて一致する行を検索します

  2. 2

    一致する行基準と共有列に基づいて2つのデータフレームをマージします

  3. 3

    R:別のデータフレームの一致する行に基づいて列を更新します

  4. 4

    2つのデータフレーム間の比較一致に基づいて列を作成します

  5. 5

    2列の一致する行に基づいて2つのデータフレームをパンダとマージします

  6. 6

    2つのデータフレームの行が一致するかどうかに基づいて新しい列を作成します

  7. 7

    2つのデータフレームを比較し、一致する列の値に基づいてdfから行を削除します

  8. 8

    2つのデータフレーム間の部分的な文字列に基づいて一致する行を取得します

  9. 9

    データフレーム内の2つの異なる列間の一致に基づいて行を削除します

  10. 10

    特定の列に基づいて2つのデータフレームの不一致を検出します

  11. 11

    2番目のデータフレームの一致する列に基づいてパンダのデータフレームを更新します

  12. 12

    2つの列間の一致する値(正確)に基づいてデータフレームをフィルタリングします

  13. 13

    パンダは、一致する複数の列値に基づいて2つのデータフレームをマージします

  14. 14

    一致する列データに基づいて2つのCSVファイルを結合します

  15. 15

    別のデータフレームの一致するIDに基づいてデータフレーム列の値を置き換えます

  16. 16

    Pandasデータフレーム:新しい列を作成し、2つの異なる列に基づいて一致する行に値を挿入します

  17. 17

    2つのデータフレームからの2つの既存の列間の一致に基づいて頻度を追加します

  18. 18

    Python:データフレームからデータを行検索し、一致する列に基づいて別のデータフレームで乗算する方法

  19. 19

    列値のペア間の最も近い一致に基づいて2つのデータフレームをマージします

  20. 20

    別のデータフレームの一致する列に基づいてランダムな量の行を削除します

  21. 21

    Rの2つのデータフレームの2つの列の一致するペア名に基づいて、別のデータフレームの他の値に値を追加します

  22. 22

    2つの数値列に基づいて2つのデータフレームを比較し、互いに数値のしきい値内で一致する行を見つけます

  23. 23

    2つのデータフレームの列名が一致する場合に値を検索します

  24. 24

    複数の選択基準に一致する2つの異なるデータフレームの行に基づいて3番目のデータフレームを構築します

  25. 25

    完全一致なしで最も近い一致に基づいて2つのデータフレームをマージする

  26. 26

    2つのデータフレームで一致した値に基づいてインクリメンタルIDを生成する

  27. 27

    部分的な文字列の一致に基づいて、別のデータフレームから1つのデータフレーム列を埋めます

  28. 28

    1 つのデータフレームの 2 つの変数を「回答キー」データフレームの「キー」に一致させることに基づいて、「回答キー」データフレームから値を取得します。

  29. 29

    一致する値に基づいて2つのpysparkデータフレームを結合します(特定の小数点まで)

ホットタグ

アーカイブ