ich habe ein Funktion definiert, die als input optional eine Liste mit Strings erlaubt.
Nun hole ich mir ein Dataframe; wenn die Liste existiert, sollen mir nur diejenigen Reihen auftauchen, die entweder in der Spalte "Vorname" oder in der Spalte "Nachname" erscheinen (dh: wenn in der Liste ein Wort erscheint, welches irgendwo in der Spalte "Lediger Name" erscheint, soll die Reihe nicht auftauchen).
Folgender Vorschlag hätte ich; denke aber, dass es effizienter geht:
Code: Alles auswählen
def Namen(namensliste=None):
namensframe = DataFrame_xyzabc #Dieses DataFrame existiert mit Werten
if namensliste:
vornamen = namensframe[namensframe["Vorname"].isin(namensliste)]
nachnamen = namensframe[namensframe["Nachname"].isin(namensliste)]
namensframe = pd.concat([vornamen , nachnamen ])
namensframe = namensframe.drop_duplicates(cols=["Vorname", "Nachname"])was nicht geht ist:
Code: Alles auswählen
namensframe = namensframe[namensframe["Vorname"].isin(namensliste) or namensframe["Nachname"].isin(namensliste)]