Строка поиска в кадре на основе словаря - PullRequest
0 голосов
/ 16 ноября 2018

Пометить фрейм данных, используя строку, содержит словарь и

ВВОД:

  a    b
0  x  abc
1  a    z

И словарь

columns = {'a':['abc'], 'b':['xyz', 'abc']}

Я хочу сделать строку, содержащую, где строка (значения) ищется на основе столбца (ключей) в словаре.

Я реализовал с помощью цикла for

CODE:

for col, strings in columns.items():
    df[col] = df[col].str.contains('|'.join(strings), case=False)

ВЫХОД:

      a      b
0  False   True
1  False  False

Как это сделать без цикла for и использования словарянепосредственно?

1 Ответ

0 голосов
/ 18 ноября 2018

Используйте list comprehension для ускорения при работе с strings:

df = pd.DataFrame(np.array([[True if value in columns[col] else False for value in df[col]] for col in df.columns]).T,
                  columns = df.columns)


print(df)
       a      b
0  False   True
1  False  False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...