MLP99
MLP99

Reputation: 63

How to apply multiple lambda functions for a single column?

I'm working on a project where I'm would like to use 2 lambda functions to find a match in another column. I created a dummy df with the following code below:

df = pd.DataFrame(np.random.randint(0,10,size=(100, 4)), columns=list('ABCD'))

Now I would like to find column A matches in column B.

df['match'] = df.apply(lambda x: x['B'].find(x['A']), axis=1).ge(0)

Now I would like to add an extra check where I'm also checking if column C values appear in column D:

df['match'] = df.apply(lambda x: x['D'].find(x['C']), axis=1).ge(0)

I'm searching for a solution where I can combine these 2 lines of code that is a one-liner that could be combined with an '&' operator for example. I hope this helps.

Upvotes: 1

Views: 809

Answers (1)

Thu Ya Kyaw
Thu Ya Kyaw

Reputation: 144

You can use and operator instead.

df['match'] = df.apply(lambda x: (x['B'] == x['A']) and (x['D'] == x['C']), axis=1).ge(0)

Upvotes: 1

Related Questions