如何用手机号码中间的数字替换空格

时间:2019-05-09 12:17:57

标签: pandas

我有一个列名称为“ Mobile No”的数据框。很少有条目在第6位有空格,以9位数字结尾。

想用数字(8)代替第6位的空格,以产生10位数字。请提出建议。

在确保应用以下代码之前,在df [“ Mobile No”]列中未运行任何“ NaN”,并且未运行任何代码。运行其df [“ Mobile No”]并填充'NaN'之后。 看起来有些问题。

df["Mobile No"] = df["Mobile No"].str.replace('  ', ' ')
Sample number with space in '88888 8888'

1 个答案:

答案 0 :(得分:1)

如果需要替换所有emprt字符串,请使用\s

#replace each space by value
df["Mobile No1"] = df["Mobile No"].str.replace(r'\s', '8')
#repalce consecutive spaces by one value
df["Mobile No2"] = df["Mobile No"].str.replace(r'\s+', '8')

如果需要在某些位置替换空白空间:

def replace_by_index(text, pos, replacement):
        return ''.join(text[:pos-1] + replacement + text[pos:]) if text[pos-1] == ' ' else text

df['Mobile No3'] = df['Mobile No'].apply(lambda x: replace_by_index(x, 6, '8'))
print (df)
     Mobile No   Mobile No1  Mobile No2   Mobile No3
0   08881 2889   0888182889  0888182889   0888182889
1   0881 28889   0881828889  0881828889   0881 28889
2  0888881  29  08888818829  0888881829  0888881  29