如何在Python中对DataFrame的URL列逐行调用自定义函数?
问题分析与解决方法
错误原因
你用df.apply(myfunction, axis=1)时,传入myfunction的是整行数据(Pandas Series对象),但你的函数定义是接收单个URL字符串,参数类型不匹配,这就是报错的核心原因。
解决方案
根据你的需求,有两种可行的处理方式:
1. 直接针对目标列调用apply(推荐,更高效)
如果你的函数只需要处理"Page Links"列的URL,直接对该列调用apply,这样传入函数的就是单个URL字符串:
new_df = df['Page Links'].apply(myfunction)
2. 修改函数适配行对象(如果需要用到行内其他数据)
如果函数需要用到当前行的其他列数据,修改myfunction,让它接收行对象并提取URL:
def myfunction(row): # 从行对象中提取URL url = row['Page Links'] # 原来的业务逻辑代码 ...
调试小技巧
如果不确定传入函数的参数类型,可以先临时添加打印语句确认:
def myfunction(param): print(type(param)) # 查看参数类型,快速定位问题 # 原有代码
内容的提问来源于stack exchange,提问作者htank
相关产品推荐
相关产品推荐

