use*_*793 2 python string substring series pandas
根据这里的其他帖子,这应该只带回四个域中的两个
import pandas as pd
df = pd.DataFrame({'Domain':['info.de','onfi.ru','kcast.fr','stack.cn']})
tld_1 =['.de', '.cn']
tld_2 =['info', 'stack']
df[~df['Domain'].isin(tld_1)]
df[~df['Domain'].isin(tld_2)]
Run Code Online (Sandbox Code Playgroud)
但它带回来了
Domain
0 info.de
1 onfi.ru
2 kcast.fr
3 stack.cn
Run Code Online (Sandbox Code Playgroud)
知道为什么以及如何正确选择包含列表中条目的域名?
提前感谢任何提示.
pd.Series.isin 测试成员资格,但您希望测试字符串中的子字符串.
您可以通过pd.Series.str.contains正则表达式执行此操作,注意转义字符.
import re
regex1 = '|'.join([re.escape(i) for i in tld_1])
regex2 = '|'.join([re.escape(i) for i in tld_2])
res1 = df[df['Domain'].str.contains(regex1)]
res2 = df[df['Domain'].str.contains(regex2)]
print(len(res1.index)) # 2
print(len(res2.index)) # 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |