Ich habe eine ganz spezifische Frage bezüglich pandas
. Ich habe zwei Datenrahmen, beide sind binär: Ein mehrere Muster enthalten können übereinstimmen sagen:Finden übereinstimmende Spalten in Pandas einschließlich NaNs
0 : 1,NaN,1,Nan,Nan
1 : Nan,1,1,Nan,Nan
und eine, die Aufzeichnungen von tatsächlichen Daten
0 : 1,0,0,1,0
1 : 0,0,0,0,1
2 : 1,0,1,0,0
Ich möchte eine Operation auszuführen, die mir sagt, welche Linien der Datensatzdaten übereinstimmen, welche Regeln. In dem Beispiel würde Regel 0 mit Datensatz 2 übereinstimmen. Die fehlenden Werte müssen nicht übereinstimmen, und darin liegt mein Problem: Wenn keine fehlenden Werte vorhanden wären, könnte ich einfach pd.merge(df1,df2,how="inner")
verwenden, aber ein innerer Join stimmt nicht überein NaN
s mit allem.
Gibt es eine einfache elegante Lösung, ohne alle Schleifen zu machen?
bearbeiten (für Klarheit) hinzuzufügen:
Dieses:
0 : 1,1,NaN,NaN,NaN
sollte von diesen mit beide überein:
0 : 1,1,0,0,0
1 : 1,1,0,0,1
können Sie nach, was Ausgabe, die Sie erreichen wollen? – Tanu
Die gewünschte Ausgabe wäre eine Tabelle mit zwei Zeilen: eine mit der Zeilennummer des übereinstimmenden Datensatzes und eine mit der Zeilennummer der übereinstimmenden Spalte. Ich möchte wissen, dass Rekord zwei mit den Regeln 1,2,3 übereinstimmt; Datensatz 15 entspricht den Regeln 1,2; Ich möchte keine Datensätze sehen, die keiner Regel entsprechen – Blackliquid