插件窝 干货文章 Python 数据清洗之 URL 字段整理与去重教程

Python 数据清洗之 URL 字段整理与去重教程

URL parsed example https 498    来源:    2025-03-14

在数据清洗过程中,处理 URL 字段是一个常见的任务。URL 字段可能包含重复项、无效的 URL、或者需要进一步解析和整理的部分。本教程将介绍如何使用 Python 对 URL 字段进行整理和去重。

1. 导入必要的库

首先,我们需要导入一些常用的 Python 库,如 pandas 用于数据处理,urllib.parse 用于解析 URL。

import pandas as pd
from urllib.parse import urlparse

2. 创建示例数据

假设我们有一个包含 URL 的 DataFrame:

data = {
    'url': [
        'https://www.example.com/page1',
        'https://www.example.com/page2',
        'https://www.example.com/page1',
        'http://www.example.com/page3',
        'https://www.example.com/page4',
        'https://www.example.com/page2',
        'https://www.example.com/page5',
        'https://www.example.com/page1',
        'https://www.example.com/page6',
        'https://www.example.com/page7'
    ]
}

df = pd.DataFrame(data)

3. URL 去重

我们可以使用 pandasdrop_duplicates() 方法来去除重复的 URL。

df_unique = df.drop_duplicates(subset=['url'])
print(df_unique)

4. URL 解析与整理

有时我们需要从 URL 中提取特定的部分,比如域名、路径、查询参数等。我们可以使用 urllib.parse.urlparse 来解析 URL。

def parse_url(url):
    parsed = urlparse(url)
    return {
        'scheme': parsed.scheme,
        'netloc': parsed.netloc,
        'path': parsed.path,
        'params': parsed.params,
        'query': parsed.query,
        'fragment': parsed.fragment
    }

# 应用解析函数到 DataFrame
df_parsed = df_unique['url'].apply(parse_url).apply(pd.Series)
df_parsed = pd.concat([df_unique, df_parsed], axis=1)
print(df_parsed)

5. 清理无效 URL

有时数据集中可能包含无效的 URL,我们可以通过检查 URL 的 schemenetloc 来过滤掉无效的 URL。

def is_valid_url(url):
    parsed = urlparse(url)
    return bool(parsed.scheme) and bool(parsed.netloc)

df_valid = df_unique[df_unique['url'].apply(is_valid_url)]
print(df_valid)

6. 保存清洗后的数据

最后,我们可以将清洗后的数据保存到 CSV 文件中。

df_valid.to_csv('cleaned_urls.csv', index=False)

7. 总结

通过以上步骤,我们完成了对 URL 字段的整理与去重。主要步骤包括:

  1. 导入必要的库。
  2. 创建示例数据。
  3. 使用 drop_duplicates() 去除重复的 URL。
  4. 使用 urllib.parse.urlparse 解析 URL。
  5. 过滤无效的 URL。
  6. 保存清洗后的数据。

这些步骤可以帮助你在数据清洗过程中有效地处理 URL 字段。根据具体需求,你还可以进一步扩展这些步骤,比如处理 URL 编码、提取特定的查询参数等。