如何在满足以下条件的数据框列中选择字符串的一部分?
- 如果该行包含
www
,则在第一个.
之后提取单词 - 如果该行不包含
www
,则在//
之后提取单词
例:
Column
https://www.test.com
https://train.co.uk
在第一种情况下,我应该在第一个句号之后提取单词,即test
;在第二种情况下,我应该考虑//
之后的第一个词,即train
这是尝试获取域
import pandas as pd
import tldextract
df['domain'] = df.Column.map(lambda x : tldextract.extract(x).domain)
另一种选择是将正则表达式与非标题组一起使用:
df.Column.str.extract('//(?:www.)?([^.]*)')
输出:
0
0 test
1 train