在列中的值列表上应用validators.domain函数

2024-05-17 00:12:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试检查特定域在我的pandas数据框架中是否有效这是一个示例df:

   Name          Domains 
dornerworks   'dornerworks.com, iot.dornerworks.cloud'
hebcoinc      'hebcoinc.com, .hepcoinc.com'
mega-tech     'mega-tech.com'

以及验证程序:

new_df = old_df[old_df['Domain'].apply(lambda x: print(validators.domain(str(x))) == True)]

这适用于只有一个域的行,它们的计算结果为True并保留在数据帧中,但是对于包含多个域的行,它会抛出以下错误:

ValidationFailure(func=domain, args={'value': 'hebcoinc.com, .hepcoinc.com'})

我有一种感觉,因为validators.domain(str(x))无法在具有多个值的行之间迭代,如果列中的每个值都有多个值,我如何将(validators.domain(str(x))应用于该列中的每个值

我试过做:

new_df = old_df[old_df['Domain'].apply(lambda x: validators.domain(str(v) for v in x) is True)]

但我得到:

TypeError: expected string or bytes-like object

这是一个指向包源的链接,其位为sparse


Tags: 数据comtruedfnewdomainoldtech