我正在尝试清理一些数据。一些员工的电话号码列(int64)有区号,而其他员工的电话号码中缺少区号。是否有一些方法,我可以用来将号码前的区号(84)添加到缺少区号的电话号码?其次,我想删除所有号码前面的“+”号。
我正在使用 Python。该列看起来像这样:
Mobile
84333605993
973444062----加 84
84339769174
+ 84349251856---删除 +
phone_number = phone_number.replace("+","")
if (len(phone_number)==9)
phone_number = "84" + phone_number
首先,您可以将 '+' 替换为无,然后检查 phone_number 是否有 9 位数字。如果是这样,则添加区域代码。phone_number 是我选择包含电话号码的变量。现在,您必须使用 probably for 方法将其应用于所有列表(您没有提到如何存储该值)。如果是熊猫,则可以执行此功能并将其应用于整个列。
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
此函数将
删除+
,如果它存在于电话号码的开头
如果电话号码的长度等于 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
我认为这个代码片段应该做的伎俩:
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']
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(10条)