熊猫使用正则表达式将所有整数替换为字符串

时间:2018-10-01 07:58:51

标签: regex pandas replace

正在尝试一些可能是超基本的东西,但是我正在尝试用字符串替换一些整数(使用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'是数字字符吗?

1 个答案:

答案 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