Regex 使用正则表达式将任何整数替换为字符串

Regex 使用正则表达式将任何整数替换为字符串,regex,pandas,replace,Regex,Pandas,Replace,正在努力解决一些可能是超基本的问题,但我正在尝试用字符串替换一些整数(使用pandas和regex) 当我运行它时,我希望看到:TRUE,但我看到的却是完全相同的列表: test2 Out[93]: 0 0 14 1 5 2 3 3 2345 我错过什么了吗?我认为“\d”是任何数字字符?您需要将数据转换为字符串,并使用^\d+$正则表达式查看整个字符串是否由数字组成: >>> test2 = test.astype(str).repla

正在努力解决一些可能是超基本的问题,但我正在尝试用字符串替换一些整数(使用pandas和regex)

当我运行它时,我希望看到:TRUE,但我看到的却是完全相同的列表:

test2
Out[93]: 
      0
0    14
1     5
2     3
3  2345

我错过什么了吗?我认为“\d”是任何数字字符?

您需要将数据转换为字符串,并使用
^\d+$
正则表达式查看整个字符串是否由数字组成:

>>> test2 = test.astype(str).replace(r'^\d+$', 'TRUE', regex=True)
>>> test2
      0
0  TRUE
1  TRUE
2  TRUE
3  TRUE
>>> 
^
匹配字符串的开头,
\d+
匹配一个或多个数字,
$
匹配字符串的结尾


请参阅。

太好了,谢谢你的解释+正则表达式的额外解释!你为什么要这样做?实际列是浮点还是字符串?有南斯吗?你想干什么?也许regex或replace不是这里最好的选择,它是一个int64列。在转换到字符串后(根据下面发布的答案,它成功了)。有没有其他可能的方法可以做到这一点?那么你能不能不仅仅做
df.astype(bool).astype(str)
?老实说,这取决于你想做什么。你会如何处理带有小数点的浮点数?您将如何处理浮点数(例如50.0)和NaN?
>>> test2 = test.astype(str).replace(r'^\d+$', 'TRUE', regex=True)
>>> test2
      0
0  TRUE
1  TRUE
2  TRUE
3  TRUE
>>>