我有一个列名称为“ 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'
答案 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