Проверка столбца phonenumbers python pandas с библиотекой phonenumbers

Я хочу проверить несколько телефонных номеров из своего фрейма данных с помощью библиотеки телефонных номеров https://pypi.org/project/phonenumbers/

Я хочу проверить номера телефонов и, в конце концов, я хочу знать, из какой страны этот номер. Так, например:

contact phoneNumber phoneCheck phoneCountry
1 31650868016 True Netherlands
2 447986123456 True United Kingdom
3 55677 False

Я использовал это решение: https://stackoverflow.com/a/56782746 я создал столбец Country.

Но я хочу использовать функцию 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: объект «Серия» не имеет атрибута «номер телефона».


person Monkey D    schedule 09.07.2021    source источник


Ответы (1)


Конкретная проблема, вызывающая эту ошибку, заключается в неуместных скобках после axis, а не перед:

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

Я думаю, что ниже вы ищете больше:

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

Я использовал None в качестве заполнителя, потому что в вашем DataFrame не было кода страны.

person JAV    schedule 09.07.2021