gpt4 book ai didi

python - 为什么使用 str(df[col]) 导致代码仅与单个记录相关?

转载 作者:行者123 更新时间:2023-12-04 08:51:35 27 4
gpt4 key购买 nike

我有一个包含线索(名称)的数据框。
我正在尝试在网络上搜索有关这些潜在客户的相关数据。
我正在使用 beautifulsoup 和 urllib 来抓取数据。
网址如下所示:

url = u'https://www.website.com/SearchResults?query=' + quote(str(df['name']))
问题是,对于每条线索,我都得到了完全相同的数据,这是检索到数据的数据帧中最后一条线索的数据。
每当我使用字符串名称而不是 str(df['name']) 时,我都会为特定的潜在客户获取正确的数据,它看起来像这样:
url = u'https://www.website.com/SearchResults?query=' + quote('this+is+a+leads+name')
我认为该问题与 str(df['name']) 特定相关的原因是,每当我删除它时,我都会成功获取数据,否则,我会得到 100,000 条相同的数据。唯一的问题是,为了使用数据帧中的线索,我需要使用 str。

最佳答案

str(df)将返回数据框的文本表示。例如

>>> pd.DataFrame({"col1":[1,2,3,4], "name":["row1","row2","row3","row4"]})
col1 name
0 1 row1
1 2 row2
2 3 row3
3 4 row4
上述数据框的文本表示将返回
col1  name
1 row1
2 row2
3 row3
4 row4
因此,要进行逐行操作,最好使用 apply来自数据帧的函数。
>>> def search_url(search_lead):
... url = u'https://www.website.com/SearchResults?query=' + search_lead
... print(url) #You can do your operation here
通过使用上述函数,使用 apply
>>> df.name.apply(lambda x: search_url(x))
https://www.website.com/SearchResults?query=row1
https://www.website.com/SearchResults?query=row2
https://www.website.com/SearchResults?query=row3
https://www.website.com/SearchResults?query=row4
0 None
1 None
2 None
3 None
Name: name, dtype: object
您可以在函数内进行网页抓取。希望这个回答能帮到你。

关于python - 为什么使用 str(df[col]) 导致代码仅与单个记录相关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64073752/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com