How to apply a self defined function in Pandas

Shaozhong SHI shishaozhong at gmail.com
Sun Oct 31 14:48:10 EDT 2021


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.

David

> https://mail.python.org/mailman/listinfo/python-list
>


More information about the Python-list mailing list