TGViewer
Мир аналитика данных Мир аналитика данных @analysts_world · 4.56K subscribers
Post #63 2.47K
🌐 Вокруг света на Python!

Как определить к какой стране относится номер телефона? Вот есть у вас база и там много номеров. Но даже по коду +7 есть номера не только России, но и Казахстана. Когда стран много, то все варианты кодов не перечислить. Ну или у вас слишком много свободного времени. Но есть решение! Тут должна быть реклама чудо средства. И это ..пам, пам, пам.. библиотека Python Phonenumbers.

Все что нужно импортировать:
import pandas as pd
from tqdm import tqdm
import numpy as np
import phonenumbers
from phonenumbers import geocoder

Как пример:
phonenumbers.parse('+79991456887') выдаст вот такую информацию: PhoneNumber(country_code=7, national_number=9991456887, extension=None, italian_leading_zero=None, number_of_leading_zeros=None, country_code_source=0, preferred_domestic_carrier_code=None)

🔥 Итак, есть у нас датафрейм с выкаченными номерами - df_phones. Номера в колонке phone_standart. У меня они без знака +, по стандарту. Добавляем плюсик к началу:
df_phones['phone_standart'] = '+' + df_phones['phone_standart'].astype('str')

Загоняем номера в лист number_lst = df_phones['phone_standart'].tolist()
Создаем пустой лист. true_number_lst =[]

Используем библиотеку tqdm, чтобы видеть, как идет процесс. Пока в цикле перебираются номера, у вас бежит бегунок и видно, что процесс идет.

for i in tqdm(number_lst):
try:
true_number_lst.append(phonenumbers.parse(i))
except:
true_number_lst.append(np.nan)

Теперь создаем список для кодов стран:
country_lst =[]
for j in tqdm(true_number_lst):
try:
country_lst.append(geocoder.region_code_for_number(j))
except:
country_lst.append(np.nan)
В результате список country_lst заполнился кодами стран.
Присвоим его колонке датафрейма:
df_phones['country_cod'] = country_lst

В результате получим то, что видите на картинке. Каждый номер, если он есть - идентифицирован. 🔥
  • 👍 18
  • 🔥 10
  • ❤ 1
More from @analysts_world
  1. Sep 21, 2026📊 Задачка с собеседования Ну что, по итогам голосования большинство хотят задачки и sql.…
  2. Sep 14, 2026Post #345
  3. Sep 14, 2026Что-то я тут прям зачастила с A/B тестами 😅 Смотрю на последние посты и такое чувство, чт…
  4. Sep 1, 2026🎒 С 1 сентября, друзья! Сегодня как раз отправила своих детей в школу – и вот это чувство…
  5. Aug 24, 2026Вне выборки Обычно здесь про SQL, Python и AB-тесты. Но не всё, что важно, попадает в выбо…
  6. Aug 20, 2026Fuckup Night от создателей Trisigma, Ares и karpov.courses Согласитесь, ивенты, где все де…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →