How to apply a self defined function in Pandas

MRAB python at mrabarnett.plus.com
Sun Oct 31 14:08:51 EDT 2021


On 2021-10-31 17:25, Shaozhong SHI wrote:
> I defined a function and apply it to a column in Pandas.  But it does not
> return correct values.
> 
> I am trying to test which url in a column full of url to see which one can
> be connected to or not
> 
> def connect(url):
>      try:
>          urllib.request.urlopen(url)
>          return True
>      except:
>          return False
> 
> df['URL'] = df.apply(lambda x: connect(df['URL']), axis=1)
> 
> I ran without any error, but did not return any true.
> 
> I just could not find any error with it.
> 
> Can anyone try and find out why
> 
You're passing a function to '.apply'. That has one argument,' x'.

But what is the function doing with that argument?

Nothing.

The function is just returning the result of connect(df['URL']).

df['URL'] is a column, so you're passing a column to '.urlopen', which, 
of course, it doesn't understand.

So 'connect' returns False.


More information about the Python-list mailing list