You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas拆分URL列并提取信息生成多列?

解决Pandas DataFrame中URL列的拆分问题

我来帮你搞定这个URL拆分的需求!你的目标是把不同层级的URL拆分成main、prod、page、more_info四列,其实用pandas.Series.str.split就能实现,只是需要调整参数并做一些后续处理,下面是具体的解决方案:

完整代码实现

import pandas as pd
import numpy as np

# 构造你的示例DataFrame
df = pd.DataFrame({
    'url': [
        'www.abc.com/',
        'www.abc.com/ttt/page1',
        'www.abc.com/vvv/page4/info',
        'www.abc.com/zzz/page4'
    ]
})

# 核心处理逻辑:清理URL + 拆分 + 重命名 + 空值替换
result_df = (
    df['url']
    # 先去掉URL末尾的斜杠,避免拆分出空字符串
    .str.rstrip('/')
    # 按斜杠分割并展开成多列DataFrame
    .str.split('/', expand=True)
    # 给拆分后的列指定目标名称
    .rename(columns={0: 'main', 1: 'prod', 2: 'page', 3: 'more_info'})
    # 将空字符串替换为NaN,和你需要的输出格式一致
    .replace('', np.nan)
)

print(result_df)

代码解释

  1. 清理URL:用str.rstrip('/')去掉URL末尾的斜杠,比如www.abc.com/会变成www.abc.com,避免拆分后出现多余的空列。
  2. 拆分URL:str.split('/', expand=True)会把每个URL按斜杠分割,并自动展开成多列DataFrame,每个层级对应一列。
  3. 重命名列:直接给拆分后的列映射到你需要的main、prod、page、more_info名称。
  4. 空值处理:用replace('', np.nan)把拆分后产生的空字符串转换成NaN,和示例输出的格式匹配。

运行结果

执行代码后会得到完全符合你需求的DataFrame:

main  prod    page more_info
0  www.abc.com   NaN     NaN       NaN
1  www.abc.com   ttt  page1       NaN
2  www.abc.com   vvv  page4      info
3  www.abc.com   zzz  page4       NaN

内容的提问来源于stack exchange,提问作者Thabra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:09:16