Фильтр строк Python data.table по регулярному выражению - PullRequest
0 голосов
/ 11 февраля 2019

Что такое data.table для Python, эквивалентный% как%?

Краткий пример:

dt_foo_bar = dt.Frame({"n": [1, 3], "s": ["foo", "bar"]})  
dt_foo_bar[re.match("foo",f.s),:] #works to filter by "foo"

Я ожидал, что что-то подобное будет работать:

dt_foo_bar[re.match("fo",f.s),:] 

Но он возвращает "ожидаемую строку или байтовоподобный объект".Я бы хотел начать использовать новый пакет data.tables в Python, как я использую его в R, но я работаю с текстовыми данными гораздо больше, чем с числовыми.

Заранее спасибо.

1 Ответ

0 голосов
/ 06 марта 2019

Начиная с версии 0.9.0, datatable содержит функцию .re_match(), которая выполняет фильтрацию регулярных выражений.Например:

>>> import datatable as dt
>>> dt_foo_bar = dt.Frame(N=[1, 3, 5], S=["foo", "bar", "fox"])
>>> dt_foo_bar[dt.f.S.re_match("fo."), :]
     N  S  
--  --  ---
 0   1  foo
 1   5  fox

[2 rows x 2 columns]

Как правило, .re_match() применяется к выражению столбца и создает новый логический столбец, указывающий, соответствует ли каждое значение заданному регулярному выражению.

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