Ersetzen Sie das Nicht -Null -Ergebnis durch 1 durch eine Lambda -Funktion Python
Posted: 11 Apr 2025, 13:12
Ich berechnet ein binäres Ergebnis, ob Werte in Spalten mindestens eine Übereinstimmung haben oder nicht. Es kann die Möglichkeit haben, dass sie mehrere Übereinstimmungen haben. Ich möchte ein Ergebnis von 1 zurückgeben, wenn sie> 1 gemeinsamen Wert haben.
Code: Select all
df=pd.DataFrame({'col1':['a|b|c','a|b|c','a|b|c'],'col2':['b|d|e|a','d|e|f','a']})
df['new']=df[['col1','col2']].apply(lambda x: len(set(x['col1'].split('|')).intersection(set(x['col2'].split('|')))),axis=1)
< /code>
Ich möchte die Rückgabe eines beliebigen Wertes> 1 mit 1 ändern, dh < /p>
pd.DataFrame({'col1':['a|b|c','a|b|c','a|b|c'],'col2':['b|d|e|a','d|e|f','a'],'new':[1,0,1]})
< /code>
gelöst < /p>
df['new']=df[['col1','col2']].apply(lambda x: 1 if len(set(x['col1'].split('|')).intersection(set(x['col2'].split('|')))) >=1 else 0,axis=1)