如何在pandas DataFrame中将URL路径的所有父目录拆分为单独行
实现方案
核心思路是先对每个路径预先生成所有层级的完整父路径列表,再将列表拆分为多行,示例代码如下:
# 定义生成层级完整路径的工具函数 def generate_full_hierarchy(path: str) -> list: # 清理结尾多余的/,按/分割路径,过滤掉开头空字符串 path_segments = [seg for seg in path.rstrip('/').split("/") if seg] # 拼接生成每一级的完整路径 return [f"/{'/'.join(path_segments[:i+1])}" for i in range(len(path_segments))] # 应用函数后展开为多行 dfPagesTotal = dfPagesTotal.assign( fullsection=dfPagesTotal["fullsection"].apply(generate_full_hierarchy) ).explode("fullsection").reset_index(drop=True)
逻辑说明
- 原路径开头的
/会导致分割后生成空字符串,首先过滤掉无效空段;代码中已经提前做了结尾多余/的清理,避免结尾带/的路径生成无效空层级 - 对有效目录段列表做切片遍历,逐次拼接出从根目录到当前层级的完整路径
- 最后通过
explode方法将每个路径对应的完整层级列表拆分为独立行 - 示例中的
/sport/tennis/us-open经过处理后,会先生成["/sport", "/sport/tennis", "/sport/tennis/us-open"]列表,展开后完全符合需求
内容的提问来源于stack exchange,提问作者user5798201
相关产品推荐
相关产品推荐

