Say I have a certain 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 fill in the description
column using the animal
column and mapping
dict as inputs:
def describe_pet(animal,mapping):
return mapping[animal]
When I try to use 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 like using apply()
is trivial passing one argument to the function. How can I do it with two arguments?
You can do this with the map
method without writing a function or using apply
at all:
df['description'] = df.animal.map(mapping)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With