Точный поиск строки с использованием лямбда-функции - PullRequest
0 голосов
/ 11 июня 2018

Как можно найти точную строку с помощью лямбда-функции?Фрейм данных выглядит следующим образом:

A  B     
10 Mini 

20 Mini Van

15 Mini

13 Mini Bus

Желаемые результаты

A   B

10  Mini

15  Mini

Я пробовал следующее, но все не удалось:

df_temp = df_temp[df_temp['B'].apply(lambda x: 'mini' in x)] and
df_temp = df_temp[df_temp['B'].apply(lambda x: 'mini' in x.str.match())]

Спасибо

1 Ответ

0 голосов
/ 11 июня 2018

Просто проверьте на равенство:

df_temp = df_temp[df_temp['B'] == 'Mini']

Это работает, потому что df_temp['B'] == 'Mini' возвращает логический ряд, который затем используется для индексации df_temp.

Или вы можете использовать pd.DataFrame.query для более интуитивного синтаксиса:

df_temp = df_temp.query('B == "Mini"')

pd.Series.apply - это просто завуалированная петля;он должен быть зарезервирован для случаев, когда вам нужно явно работать с серией по одному элементу за раз в цикле.Это неэффективно и многословно по сравнению с индексированием с помощью вышеуказанных методов.

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