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

У меня есть столбец данных с такими строками:

df.column1:
0 R$ 27.467.522,00 (Vinte e sete milhões, quatro...
1 NaN
2 R$ 35.314.312,12 (Trinta e cinco milhões, trezentos...
3 R$ 1.231,34 (Mil duzentos e trinta e um reais e...

Я хочу получить только цифры, не считая десятичных дробей, поэтому он выглядит примерно так:

df.column1:
0 27467522
1 NaN
2 35314312
3 1231

Я пытаюсь сделать это с помощью регулярных выражений:

df['column1']=df['column1'].str.extract('[REGEX CODE]')

Однако я не использую регулярные выражения.Я пробовал такие решения, как:

df['column1']=df['column1'].str.extract('(.*?,)').str.extract('(\d+)')
df['column1']=df['column1'].str.extract('(\s*,.*)').str.extract('(\d+)')

Но я не смог сделать это правильно.Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 04 июня 2018

Используйте str.replace, затем str.extract

df.column1.str.replace('.', '').str.extract(r'(\d+)')

          0
0  27467522
1       NaN
2  35314312
3      1231

Десятичные дроби обозначаются здесь запятыми, поэтому, заменяя точки и используя экстракт, чтобы найти первыйсовпадение, число будет совпадать, игнорируя десятичное число.

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