Как я могу разобрать телефонные номера из фрейма данных pandas, в идеале используя библиотеку телефонных номеров?
Я пытаюсь использовать порт библиотеки Google libphonenumber на Python,
https://pypi.org/project/phonenumbers/.
У меня есть фрейм данных с 3 миллионами телефонных номеров из многих стран. У меня есть строка с номером телефона и строка с кодом страны / региона. Я пытаюсь использовать функцию разбора в пакете. Моя цель - проанализировать каждую строку, используя соответствующий код страны, но я не могу найти способ сделать это эффективно.
Я пытался использовать apply, но это не сработало. Я получаю "(0) Отсутствует или недопустимый регион по умолчанию." ошибка, означающая, что она не пропустит строку кода страны.
df['phone_number_clean'] = df.phone_number.apply(lambda x:
phonenumbers.parse(str(df.phone_number),str(df.region_code)))
Строка ниже работает, но не дает мне того, что я хочу, так как числа, которые я приехал из более чем 120 стран.
df['phone_number_clean'] = df.phone_number.apply(lambda x:
phonenumbers.parse(str(df.phone_number),"US"))
Я пытался сделать это в цикле, но это очень медленно. Мне потребовалось больше часа, чтобы разобрать 10000 номеров, и у меня есть примерно 300x, что:
for i in range(n):
df3['phone_number_std'][i] =
phonenumbers.parse(str(df.phone_number[i]),str(df.region_code[i]))
Есть ли метод, который мне не хватает, который мог бы запустить это быстрее? Функция apply работает приемлемо хорошо, но я не могу передать в нее элемент фрейма данных.
Я все еще новичок в Python, так что, возможно, это простое решение. Но я был бы очень признателен за вашу помощь.