sainid
sainid

Reputation: 49

creating a column in dataframe pandas based on a condition

I have two lists

A = ['a','b','c','d','e']
B = ['c','e']

A dataframe with column

      A
  0   a
  1   b
  2   c
  3   d
  4   e

I wish to create an additional column for rows where elements in B matches A.

      A  M
  0   a
  1   b
  2   c match
  3   d
  4   e match

Upvotes: 2

Views: 325

Answers (1)

jezrael
jezrael

Reputation: 863226

You can use loc or numpy.where and condition with isin:

df.loc[df.A.isin(B), 'M'] = 'match'
print (df)
   A      M
0  a    NaN
1  b    NaN
2  c  match
3  d    NaN
4  e  match

Or:

df['M'] = np.where(df.A.isin(B),'match','')
print (df)

   A      M
0  a       
1  b       
2  c  match
3  d       
4  e  match

Upvotes: 3

Related Questions