如何提取pandas DataFrame中url列的路径,解决Series真值模糊报错
问题原因
urlparse方法仅支持传入单个URL字符串,而你直接传入了df['url']这个pandas Series对象(整列数据),urllib内部做空值判断时无法处理Series类型,触发了ValueError: The truth value of a Series is ambiguous报错。
解决方案
你可以用pandas的apply方法遍历整列的每个URL,逐个解析提取path,修改后的代码如下:
import pandas as pd from urllib.parse import urlparse fic_in = 'file.csv' df = pd.read_csv(fic_in) # 对url列每个值执行urlparse,提取path df['url'] = df['url'].apply(lambda x: urlparse(x).path) print(df)
可选优化
如果数据中存在空值、非标准格式的异常URL,可以增加容错逻辑避免运行中断:
import pandas as pd from urllib.parse import urlparse def get_url_path(url): if not url: return '' try: return urlparse(url).path except: return '' fic_in = 'file.csv' df = pd.read_csv(fic_in) df['url'] = df['url'].apply(get_url_path) print(df)
内容的提问来源于stack exchange,提问作者AdamD97
相关产品推荐
相关产品推荐

