python - 从相似类型中提取一个 url
问题描述
我有一个包含数千个 url 的 csv 文件。如何从每个基本类型的 url 中随机选择一个 url。获取url的顺序可以是反正。它必须是随机的。
import pandas as pd
# initialise data of lists.
data = {'url':['https://alabamasymphony.org/event/shamrocks-strings',
'https://alabamasymphony.org/event/emperor',
'https://mobilesymphony.org/event/fanfare',
'https://mobilesymphony.org/event/the-fireworks-of-jupiter/',
'https://www.hso.org/concerts/liszt-fantasy/',
'https://www.juneausymphony.org/apr2019/']}
# Create DataFrame
df = pd.DataFrame(data)
df
预期产出
['https://alabamasymphony.org/event/emperor','https://mobilesymphony.org/event/fanfare','https://www.hso.org/concerts/liszt-fantasy/','https://www.juneausymphony.org/apr2019/']
解决方案
您需要做的第一件事是提取基本 url,这可以使用urllib
.
然后,您可以使用groupby
withsample
为每个 base_url 提取随机 url。
import urllib.parse
import pandas as pd
# initialise data of lists.
data = {'url':['https://alabamasymphony.org/event/shamrocks-strings',
'https://alabamasymphony.org/event/emperor',
'https://mobilesymphony.org/event/fanfare',
'https://mobilesymphony.org/event/the-fireworks-of-jupiter/',
'https://www.hso.org/concerts/liszt-fantasy/',
'https://www.juneausymphony.org/apr2019/']}
# Create DataFrame
df = pd.DataFrame(data)
df['base_url'] = df['url'].apply(lambda url: urllib.parse.urlparse(url).netloc)
random = df.groupby('base_url').sample(n=1)
print(random)
url base_url
1 https://alabamasymphony.org/event/emperor alabamasymphony.org
2 https://mobilesymphony.org/event/fanfare mobilesymphony.org
4 https://www.hso.org/concerts/liszt-fantasy/ www.hso.org
5 https://www.juneausymphony.org/apr2019/ www.juneausymphony.org
推荐阅读
- python - 未找到 Python 包导入图像 MacOS
- java - 无法在 Java 中的线程之间获取更新的列表
- javascript - Java 和 typescript 生成差异 PBKDF2 哈希
- mongodb - MongoDB Aggregate 向文档添加一个新字段,如果另一个字段已经存在
- python - 将 .wav 文件切割成相同长度的段
- python - 如何在熊猫中将三列合并为一个时间戳列
- amazon-web-services - 使用 plesk 控制面板在 AWS lightail 中无法使用电子邮件
- c# - Search in Directory
- jquery - 关于 Stacktracing jquery 错误的一般问题
- count - 哪些因素可以使项目计数与沙发库中的项目 ID 计数不同?