如何使用Python正则表达式将点替换为空行或空行

如何使用Python正则表达式将点替换为空行或空行,python,regex,Python,Regex,我有一个数据框data,看起来如下: age 0 . 1 1.2 2 9 3 . 我想将所有具有的行转换为空值(或np.nan)。 我期望的结果是: age 0 1 1.2 2 9 3 我尝试了两种不同的正则表达式,但都不起作用: data['age'] = data['age'].str.replace(r'^(.)$', '') data['age'] = data['age'].str.replace(r'\D', '') 这两个结

我有一个数据框
data
,看起来如下:

    age
0   .
1   1.2
2   9
3   .
我想将所有具有
的行转换为空值(或
np.nan
)。
我期望的结果是:

    age
0   
1   1.2
2   9
3   
我尝试了两种不同的正则表达式,但都不起作用:

data['age'] = data['age'].str.replace(r'^(.)$', '')
data['age'] = data['age'].str.replace(r'\D', '')
这两个结果:

    age
0   
1   NaN
2   NaN
3   

什么是空的?这个
^[^\d]*(?:\.[^\d]*)+$
?只能部分验证而不是数字。
str.replace(r'^\.$,'')
。必须在正则表达式中转义文字点。在其最简单的形式中,如果它不匹配此
^(?:\s*\d+\s*(?:\s*\.\s*\d*)?\s*\.\s*.\s*\d+\s*$
,则它不是一个数字。