Несколько запросов isin в одном операторе - PullRequest
0 голосов
/ 19 октября 2018

У меня есть фрейм данных df, где руководитель выглядит следующим образом:

id      dept       paid
97   accounts   monthly
73       shop    weekly
20  marketing    yearly
70   analysis   monthly
55   advisory   monthly
42  marketing   monthly
76  marketing    weekly

Мне интересно посмотреть на подмножество сотрудников из подмножества отделов, и из них подмножество оплачиваемых.

так, например, если я хочу вернуть подмножество фрейма данных, которое было marketing и advisory, и из них только те, которые оплачены monthly и weekly

Iвыдаст следующие полные записи:

id       dept      paid
55   advisory   monthly
42  marketing   monthly
76  marketing    weekly

Я попытался использовать два списка, называемых deptQuery и paidQuery, которые выглядят так:

deptQuery = ['marketing','advisory']

paidQuery = ['monthly','weekly']

и применить его к:

queryResult = df[df['dept'].isin(deptQuery) and DeptTemplate['paid'].isin(paidQuery)] 

Я также пытался

queryResult = df[df['dept'].isin(deptQuery)] and df[df['paid'].isin(paidQuery)]

, но не могу заставить его работать.Может ли кто-нибудь предложить некоторую помощь, пожалуйста?

Большое спасибо

1 Ответ

0 голосов
/ 19 октября 2018

Используйте & для побитового AND и удалите df[:

queryResult = df[df['dept'].isin(deptQuery) & df['paid'].isin(paidQuery)]

print (queryResult)
   id       dept     paid
4  55   advisory  monthly
5  42  marketing  monthly
6  76  marketing   weekly

Другое решение с query:

queryResult = df.query('dept in @deptQuery & paid in @paidQuery')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...