#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']