Erstelle eine neue Pandas DataFrame-Spalte basierend auf der if-else-Bedingung mit einem Lookup

Ich habe einen Pandas-Datenrahmen und muss eine neue Spalte basierend auf einer if-else-Bedingung erstellen. Diese Frage wurde hier bereits mehrmals gestellt (z. B.Erstellen einer neuen Spalte basierend auf der if-elif-else-Bedingung).

Ich kann die vorgeschlagene Lösung jedoch nicht anwenden, da ich auch Werte in einer Liste nachschlagen muss, um die Bedingung zu überprüfen. Ich kann dies mit der vorgeschlagenen Lösung nicht tun, da ich nicht sicher bin, wie ich in der externen Funktion auf meine Nachschlageliste zugreifen kann. Meine Nachschlageliste müsste global sein, was ich vermeiden möchte. Ich habe das Gefühl, es sollte einen besseren Weg geben, dies zu tun.

Betrachten Sie den folgenden Datenrahmendf:

letters
A
B
C
D
E
F

Ich habe auch eine Liste, die Nachschlagewerte enthält:

lookup = [C,D]

Nun möchte ich eine neue Spalte in meinem Datenrahmen erstellen, die @ enthä1 wenn der jeweilige Wert in @ enthalten ilookup und0 wenn die Werte nicht in @ silookup.

Der typische Ansatz wäre:

df.apply(helper, axis=1)

def helper(row):
  if(row['letters'].isin(lookup)):
     row['result'] = 1
  else:
     row['result'] = 0

Ich weiß jedoch nicht, wie ich auf @ zugreifen kalookup imhelper() ohne es global zu machen.

Das Ergebnis sollte so aussehen:

letters    result
A          0
B          0
C          1
D          1
E          0
F          0

Antworten auf die Frage(2)

Ihre Antwort auf die Frage