gpt4 book ai didi

python - 在 python 数据框中提取许多 URL

转载 作者:行者123 更新时间:2023-12-01 09:19:15 25 4
gpt4 key购买 nike

我有一个数据框,其中包含包含一个或多个 URL 的文本:

user_id          text
1 blabla... http://amazon.com ...blabla
1 blabla... http://nasa.com ...blabla
2 blabla... https://google.com ...blabla ...https://yahoo.com ...blabla
2 blabla... https://fnac.com ...blabla ...
3 blabla....

我想用每个用户 ID 的 URL 计数来转换此数据框:

 user_id          count_URL
1 2
2 3
3 0

有没有一种简单的方法可以在 Python 中执行此任务?

我的代码开始:

URL = pd.DataFrame(columns=['A','B','C','D','E','F','G'])

for i in range(data.shape[0]) :
for j in range(0,8):
URL.iloc[i,j] = re.findall("(?P<url>https?://[^\s]+)", str(data.iloc[i]))

谢谢你

莱昂内尔

最佳答案

一般来说,URL 的定义比示例中的定义复杂得多。除非您确定您的 URL 非常简单,否则您应该查找一个好的模式。

import re
URLPATTERN = r'(https?://\S+)' # Lousy, but...

首先,从每个字符串中提取 URL 并对其进行计数:

df['urlcount'] = df.text.apply(lambda x: re.findall(URLPATTERN, x)).str.len()

接下来,按用户 ID 对计数进行分组:

df.groupby('user_id').sum()['urlcount']
#user_id
#1 2
#2 3
#3 0

关于python - 在 python 数据框中提取许多 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50937321/

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