Как найти / сравнить целое число столбца 1 в столбце типа списка 2 в кадре данных? - PullRequest
1 голос
/ 23 апреля 2020

У меня есть один фрейм данных, как показано ниже, - и я хотел бы проверить, находится ли столбец Number в столбце List of Numbers для каждой записи строки.

enter image description here

В конечном итоге я ожидаю получить столбец Result, как показано ниже:

enter image description here

Есть ли лучший способ получить ожидаемый результат в Python Pandas? Спасибо!

1 Ответ

1 голос
/ 23 апреля 2020

Используйте понимание списка с оператором in:

df['Result'] = [b in a for a, b in df[['List of Numbers','Number']].values]

Аналогичная идея с zip:

df['Result'] = [b in a for a, b in zip(df['List of Numbers'],df['Number'])]

Или решение с DataFrame.apply:

df['Result'] = df.apply(lambda x: x['Number'] in x['List of Numbers'], axis=1)

РЕДАКТИРОВАТЬ: измените df['Result'] на маску для любых решений выше и отфильтруйте по boolean indexing:

mask = df.apply(lambda x: x['Number'] in x['List of Numbers'], axis=1)
df1 = df[mask]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...