我在pandas数据框中有一列,其中一些值是这样的格式。"From https:/....com?gclid=。...到 https:/...com". 我想要的是只解析第一个URL,这样gclid和其他ID就会消失,我想把它映射回数据框架中,比如说 "From https:/....com 到 https:/...com"
我知道有一个叫urllib的python模块,但是如果我把它应用到这个字符串上并调用path(),它只是解析了第一个URL,然后我失去了和第一个URL一样重要的其他部分。
谁能帮帮我?谢谢你的帮助
如果你使用DataFrame,那么使用 replace()
它可以使用regex来查找文本,如 "?.... "
(以 ?
并以 space
- 或以 ?
而且只有不同的字符 space
- '\?[^ ]+'
)
import pandas as pd
df = pd.DataFrame({'text': ["From https://....com?gclid=... to https://...com"]})
df['text'] = df['text'].str.replace('\?[^ ]+', '')
结果
text
0 From https://....com to https://...com
另外,你还可以尝试更复杂的regex。 你也可以尝试更复杂的regex来确保它是url的一部分,它以 http
.
df['text'] = df['text'].str.replace('(http[^?]+)\?[^ ]+', '\\1')
我用的是 (...)
捕捉这个网址之前 ?...
我把它放回去,用 \\1
(已经没有 ?...
)