我有一个pandas数据框,在'page'列中包含非常长的字符串,我试图从中提取子字符串:
示例字符串:/ ex / search /!tu / p / z1 / zVJdb4IwFP0r88HH0Sp -hK / dz / d5 / L2dBISEvZ0FBIS9nQSEh /?s& search_query=example one &y = 0&x = 0
使用正则表达式,我很难确定如何在两个&符号之间提取字符串并删除更大字符串的所有其他字符 .
到目前为止,我的代码看起来像这样:
import pandas as pd
import re
dataset = pd.read_excel(r'C:\Users\example.xlsx')
dataframe = pd.DataFrame(dataset)
dataframe['Page'] = format = re.search(r'&(.*)&',str(dataframe['Page']))
dataframe.to_excel(r'C\Users\output.xlsx)
上面的代码运行但不向我的新电子表格输出任何内容 .
先感谢您 .
3 回答
您可以使用urllib.parse.urlparse从URL中提取查询字符串,然后使用_2915552解析它:
EDIT: 要从
Page
列中的所有页面中提取query_string
:You can try this
(?<=&)
- 正面观察 . 匹配&
.(.*?)
- 匹配除换行之外的任何内容 . (懒惰的方法) .(?=&)
- 正向前瞻匹配&
.Demo
快速高效的熊猫方法 .
示例数据:
码:
示例输出:
如果您想根据key = value对标记列,那将是一个不同的提取词 .