Проблемы с извлечением подстрок строки в Python Dataframe Pandas - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть выражение вроде (одна строка столбца, скажем ' old_col ' во фрейме данных pandas) ( Показано две верхние строки из столбца фрейма данных )

abcd_6.9_uuu ghaha_12.8 _sksks

abcd_5.2_uuu ghaha_13.9 _sksks

Я пытался использовать str.extract на фрейме данных, чтобы получить два плавающих числа.Однако я нахожу две проблемы, только первая поднята (6,9 из первого ряда и 5,2 из второго ряда)

1. Так как я могу это сделать?

2. Кроме того, как я могу сделать метод извлечения общим для выбора чисел вплоть до любых цифр (5,7 или 12,9 независимо)

Яиспользуя: df [' newcol '] = df [' old_col ']. str.extract ('(_ \ d. \ d)')

1 Ответ

0 голосов
/ 29 сентября 2018

Чтобы получить более одной цифры,

df['col'].str.extract('(\_\d+\.\d+)')

    col
0   _6.9
1   _15.9

Чтобы получить все вхождения, используйте str.extractall

df['col'].str.extractall('(\_\d+\.\d+)')

            col
    match   
0   0      _6.9
    1     _12.8
1   0     _15.9
    1     _13.9

Чтобы назначить обратно на df:

s = df['col'].str.extractall('(\_\d+\.\d+)')['col']
df['new_col'] = s.groupby(s.index.get_level_values(0)).agg(list)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...