Извлечение целых чисел с пробелами из строки - PullRequest
1 голос
/ 12 марта 2019

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

У меня есть датафрейм, df, структурированный так:

                                    NAME  PERCENT
0     APPLE COMPANY A  57 638 232 stocks  0.12322
1  BANANA 1 COMPANY B  12 946 201 stocks  0.02768
2     ORANGE COMPANY C  8 354 229 stocks  0.01786

df = pd.DataFrame({
    'NAME': ['APPLE COMPANY A  57 638 232 stocks', 'BANANA 1 COMPANY B  12 946 201 stocks', 'ORANGE COMPANY C  8 354 229 stocks'],
    'PERCENT': [0.12322, 0.02768 , 0.01786]
    })

Я хочу извлечь целые числа из NAME, но не все целые (обратите внимание, что в строке 1 у нас есть BANANA 1 COMPANY B, где я хочу игнорировать целое число 1 перед COMPANY. Я хочу извлечь только те целые числа перед stocks.

Я хочу, чтобы вывод выглядел так:

                 NAME  PERCENT    STOCKS
0     APPLE COMPANY A  0.12322  57638232
1  BANANA 1 COMPANY B  0.02768  12946201
2    ORANGE COMAPNY C  0.01786   8354229

Пока у меня есть только то, что не дает того, что я хочу:

df['NAME'].str.findall(r'\b\d+\b')

Редактировать: обратите внимание, что количество акций может изменяться от тысяч до миллионов, что означает отсутствие модели.

1 Ответ

3 голосов
/ 12 марта 2019

Это regex будет извлекать то, что вы ищете

\d+\s\d+\s\d+

вышлет:

57 638 232

12 946 201

8 354 229

От:

'NAME': ['APPLE COMPANY A  57 638 232 stocks', 'BANANA 1 COMPANY B  12 946 201 stocks', 'ORANGE COMPANY C  8 354 229 stocks']
...