如何使用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*$
,则它不是一个数字。