Понимание регулярного выражения в функции извлечения серии в пандах - PullRequest
2 голосов
/ 23 марта 2019

У меня есть следующий код:

import pandas as pd
s = pd.Series(['toy story (1995)', 'the pirates (2014)'])
print(s.str.extract('.*\((.*)\).*',expand = True))

с выводом:

     0
0  1995
1  2014

Я понимаю, что функция извлечения извлекает значения в скобках для обоих объектов серии.Однако я не понимаю, как.Что именно означает '.*\((.*)\).*'?Я думаю, что звездочки представляют собой символы подстановки, но помимо этого я совершенно не понимаю, что на самом деле происходит с этим выражением.

Ответы [ 2 ]

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

.*\( соответствует всему до первого (

\).* соответствует всему от ) до конца

(.*) возвращает все между первыми двумя совпадениями

1 голос
/ 23 марта 2019
.*             Match any number of characters
\(             Match one opening parenthesis
    (.*)       Match any number of characters into the first capturing group
\)             Match a closing parenthesis
.*             Match any number of characters

Эта запись называется регулярным выражением, и я полагаю, что Панда использует регулярные выражения в функции extract, чтобы вы могли получить более точные данные. Вещи внутри групп захвата будут возвращены.

Подробнее о регулярных выражениях можно узнать на странице Википедии .

Вот тестовый пример с использованием вашего регулярного выражения.

...