Проверьте, существует ли значение в столбце в URL, используя функцию lamda - PullRequest
0 голосов
/ 24 января 2019

У меня есть датафрейм с двумя столбцами.Одним из них является URL, а другим - имя пользователя.

+----------------------------------------+---------------+
|                  URL                   |   Username    |
+----------------------------------------+---------------+
| johnsmith/stackoverflow.com/?=abc      | johnsmith     |
| michealrod/stackoverflow.com/?=payment | michealrod    |
| stephaniejean/stackoverflow.com/?=abc  | stephaniejean |
+----------------------------------------+---------------+

Я хочу написать лямбда-функцию, которая проверяет, существует ли имя пользователя в URL.Я пытаюсь написать что-то вроде этого, но получаю сообщение об ошибке

df['exists'] = df.apply(lambda x : df['Username'] in df['URL']).any()

Поэтому в основном я пытаюсь получить значение TRUE, если имя пользователя является частью URL, и значение False, если имя пользователя не существует в URL.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Проверка с numpy core.defchararray.find

df['exists']=np.core.defchararray.find(df.URL.values.astype(str),df.Username.values)!=-1
0 голосов
/ 24 января 2019

Предполагая, что ваши данные чисты, понимание списка относительно эффективно:

df['exists'] = [x in y for x, y in zip(df['Username'], df['URL'])]

Вы можете использовать apply, но с худшей производительностью:

df['exists'] = df.apply(lambda row: row['Username'] in row['URL'], axis=1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...