J'ai deux dataframes,
df1
ID Key Result 1 A Not Found 2 B Found 3 C Found 4 D Found
df2
ID Key 1 D 2 C 3 B 4 E
Maintenant, si la clé dans le df1 est trouvé dans df2 alors la nouvelle colonne aura une valeur trouvée sinon introuvable
le df1 avec le dataframe de sortie devient,
ID Key 1 A 2 B 3 C 4 D
Comment pouvons-nous faire cela en utilisant des Pandas? Ce n'est pas une jointure / concat / fusion par ID.
3 Réponses :
Utilisez numpy.where avec isin code > :
df1['Result'] = np.where(df1['Key'].isin(df2['Key']), 'Found', 'Not Found') print (df1) ID Key Result 0 1 A Not Found 1 2 B Found 2 3 C Found 3 4 D Found
Une autre façon d'utiliser merge et np.where
df1['Result'] = np.where(pd.merge(df1,df2,
on='key',
suffixes=('_x', '_match'),
how='left')['id_match'].fillna('Not Found')!='Not Found','Found','Not Found')
Vous voudrez peut-être jeter un œil à
.isinpour cela