Say I have a specific mapping:
mapping = { 'cat': 'purrfect', 'dog': 'too much work', 'fish': 'meh' }
and a dataframe :
animal name description 0 cat sparkles NaN 1 dog rufus NaN 2 fish mr. blub NaN
I would like to programmatically populate the description column using the animal and mapping dict column as input:
def describe_pet(animal,mapping): return mapping[animal]
When I try to use the pandas apply() function:
df['description'].apply(describe_pet,args=(df['animal'],mapping))
I get the following error:
TypeError: describe_pet() takes exactly 2 arguments (3 given)
It seems that using apply() trivially passes one argument to the function. How to do this with two arguments?
source share