首页 > 解决方案 > 验证 phonenumbers 列 python pandas 与 phonenumbers 库

问题描述

我想使用 phonenumbers 库 https://pypi.org/project/phonenumbers/从我的数据框中检查多个电话号码

我想验证电话号码,最终我想知道该号码来自哪个国家。例如:

接触 电话号码 电话查询 电话国家
1 31650868016 真的 荷兰
2 447986123456 真的 英国
3 55677 错误的

我使用了这个解决方案:https ://stackoverflow.com/a/56782746我做了一个国家专栏。

但我想使用 phonenumbers.is_valid_number() 函数,最终使用 geocoder.description_for_number() 函数。

df['phone_number_clean'] = df.apply(lambda x: 
                              phonenumbers.is_valid_number(phonenumbers.is_valid_number(str(x.phoneNumber), 
                                                 str(x.Country)), 
                              axis='columns'))

错误:AttributeError:“系列”对象没有属性“电话号码”

标签: pythonpandaslibphonenumber

解决方案


导致此错误的具体问题是在之后axis而不是之前放错括号:

df['phone_number_clean'] = df.apply(lambda x: phonenumbers.is_valid_number(phonenumbers.is_valid_number(str(x.phoneNumber), str(x.phone Country )) ) , axis='columns')

我认为以下是您正在寻找的更多内容:

df['phone_number_clean'] = df.apply(lambda x: phonenumbers.is_valid_number(phonenumbers.parse("+"+str(x.phoneNumber), None)), axis=1)

我使用 None 作为占位符是因为您的 DataFrame 中没有国家/地区代码。


推荐阅读