How to apply a self defined function in Pandas

MRAB python at mrabarnett.plus.com
Sun Oct 31 15:23:56 EDT 2021


On 2021-10-31 18:48, Shaozhong SHI wrote:
>
> On Sunday, 31 October 2021, MRAB <python at mrabarnett.plus.com> wrote:
>
>     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.
>
>
> Please expand on how.
>
It's as simple as passing 'connect' to '.apply' as  the first argument.


More information about the Python-list mailing list