Панды заменяют любое целое число на строку с помощью регулярных выражений - PullRequest
0 голосов
/ 01 октября 2018

борется с чем-то, что, вероятно, является суперосновным, но я пытаюсь заменить некоторые целые числа на строку (используя pandas & regex)

test = pd.DataFrame([14,5,3,2345])
test2 = test.replace('\d', 'TRUE', regex=True)
test2

Когда я запускаю это, я ожидаю увидеть: TRUE TRUEИСТИНА ИСТИНА, но вместо этого я вижу точно такой же список:

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

Я что-то упустил?Я думал, что '\ d' это какой-либо числовой символ?

1 Ответ

0 голосов
/ 01 октября 2018

Вам необходимо преобразовать данные в строку и использовать регулярное выражение ^\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 .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...