仅在python中缺少区号的电话号码中添加区号“84”

55ooxyrt  于 2021-08-25  发布在  Java
关注(0)|答案(4)|浏览(408)

我正在整理一些数据。某些员工的电话号码列(int64)包含区号,而其他员工的电话号码中缺少区号。是否有某种方法,我可以使用它将号码前的区号(84)添加到缺少区号的电话号码中?其次,我想删除所有数字前面的“+”号。
我正在使用python。该列如下所示:
可移动的
84333605993
973444062----加84
84339769174
+84349251856----拆下+

hi3rlvi2

hi3rlvi21#

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

首先,您可以将“+”替换为零,然后检查电话号码是否有9位数字。如果是,请添加区号。电话号码是我选择包含电话号码的变量。现在您必须使用maybuly for方法将其应用于所有列表(您没有提到如何存储这些值)。对于pandas,您可以从中执行一个函数,并将其应用于整个列。

mbjcgjjk

mbjcgjjk2#

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
yftpprvb

yftpprvb3#

此功能将
移除 + 如果它存在于电话号码的开头
如果电话号码的长度等于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
eit6fx6z

eit6fx6z4#

我认为这段代码应该可以做到:

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

相关问题