Добавление кода города «84» только к телефонным номерам, в которых отсутствует код города в Python

#python #pandas

Вопрос:

Я пытаюсь очистить некоторые данные. В столбце Номер телефона (int64) для некоторых сотрудников указан код региона, в то время как код региона отсутствует в телефонных номерах других сотрудников. Есть ли какой-то метод, который я могу использовать, чтобы добавить код города (84) перед номером только к тем телефонным номерам, в которых отсутствует код города? Во — вторых, я хочу удалить знак » » перед всеми номерами.

Я использую Python. Колонка выглядит так:

Мобильный

84333605993

973444062 —- добавить 84

84339769174

84349251856—- удалить

Комментарии:

1. Что вы пробовали до сих пор. Пожалуйста, добавьте код для публикации @D Alam

2. Вы можете узнать, добавлен ли к номеру телефона код города, зная длину номера телефона.

Ответ №1:

 phone_number = phone_number.replace(" ","")
if (len(phone_number)==9)
    phone_number = "84"   phone_number
 

Сначала вы можете заменить » » ничем, а затем проверить, содержит ли номер телефона 9 цифр. Если это так, вы добавляете код города. phone_number-это переменная, которую я выбираю для указания номера телефона. Теперь вам нужно использовать, вероятно, метод for, чтобы применить его ко всему вашему списку ( вы не упомянули, как вы храните эти значения). В случае с пандами вы можете сделать из него функцию и применить ее ко всему столбцу.

Ответ №2:

 df = pd.DataFrame(['84333605993', '973444062', '84339769174', ' 84349251856'], columns=['Mobile'])

df['Mobile'] = df['Mobile'].str.replace(' ', '')
df.loc[~df['Mobile'].str.startswith('84'), 'Mobile'] = '84'   df[~df['Mobile'].str.startswith('84')]['Mobile']

df
 
     Mobile
0   84333605993
1   84973444062
2   84339769174
3   84349251856
 

Ответ №3:

Эта функция будет

  • Удалите , если он существует в начале номера телефона
  • Если длина телефонного номера равна 9, то добавьте к нему код города (84).
 def clean_phone_number(n):
    n = n.replace(' ', '')
    # Add the area code 84 if len(n) == 9
    if len(n) == 9:
        n = '84'   n
    return n


print(clean_phone_number('952368741'))
print(clean_phone_number(' 84475968475'))
print(clean_phone_number('84456968475'))
 
 Output

84952368741
84475968475
84456968475
 

Ответ №4:

Я думаю, что этот фрагмент кода должен сделать свое дело:

 numbers = ['84333605993',
           '973444062',
           '84339769174',
           ' 84349251856']
corrected = []
for number in numbers:
    number = number.strip(' ')  # removes  
    if len(number) == 9:
        number = '84'   number  # adds 84
    corrected.append(number)
print(corrected)
 
 Output:
['84333605993', '84973444062', '84339769174', '84349251856']