1
Ich habe einen Datenrahmen, dem ich eine Spalte mit einer Art Status hinzufügen möchte, wenn ein anderer Wert in einem anderen Datenrahmen vorhanden ist. Ich habe den aktuellen Code, der funktioniert:Pandas DataFrame Apply Effizienz
df1['NewColumn'] = df1['ComparisonColumn'].apply(lambda x: 'Match' if any(df2.ComparisonColumn == x) else ('' if x is None else 'Missing'))
Ich weiß, die Linie ist hässlich, aber ich habe den Eindruck, dass es ineffizient ist. Können Sie einen besseren Vergleich vorschlagen?
Vielen Dank dafür - ich habe es implementiert und es ist ein bisschen schneller und es ist definitiv klarer. Kannst du sagen, warum es schneller ist? Etwas, das vielleicht in meinem ursprünglichen Beitrag fehlt, ist, dass die Vergleiche Textvergleiche sind. Es scheint lustig zu sein, mit numpy Textvergleiche durchzuführen. – user3535074
@ user3535074 Ja, anwenden ist im Allgemeinen eine etwas langsame Operation, ich benutze nur Numpy für wenn dann Kontrolle und der Vergleich findet mit Pandas und Isin-Funktion statt. –