正在尝试一些可能是超基本的东西,但是我正在尝试用字符串替换一些整数(使用pandas和regex)
test = pd.DataFrame([14,5,3,2345])
test2 = test.replace('\d', 'TRUE', regex=True)
test2
运行该命令时,我希望看到:TRUE TRUE TRUE TRUE,但我看到的是完全相同的列表:
test2
Out[93]:
0
0 14
1 5
2 3
3 2345
我想念什么吗?我以为'\ d'是数字字符吗?
答案 0 :(得分:1)
您需要将数据转换为字符串,并使用^\d+$
正则表达式来查看整个字符串是否由数字组成:
>>> test2 = test.astype(str).replace(r'^\d+$', 'TRUE', regex=True)
>>> test2
0
0 TRUE
1 TRUE
2 TRUE
3 TRUE
>>>
^
匹配字符串的开头,\d+
匹配1个或多个数字,而$
匹配字符串的结尾。
请参见this regex demo。