Применить функцию к отфильтрованной группе после группового - PullRequest
0 голосов
/ 21 мая 2018

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

В любом случае вот что у меня есть для фрейма данныхdf:

user1   user2  date         quantity
-----------------------------
Alice   Bob    2018-05-21   100
Alice   Bob    2018-05-19   20
Alice   Carol  2018-01-01   1000
Bob     Carol  2018-02-01   100

Я хочу вычислить функцию (скажем, некоторую функцию func) количества для данной пары user1-user2 только для дней недели * только 1010 *.

Пока что у меня есть:

df['day'] = df['date'].dt.weekday
df.groupby(['user1','user2']).filter(lambda x: (x.day < 5).any() )

Но я не понимаю, чего я ожидаю.Очевидно, что фильтр делает выбор только тех пар, у которых хотя бы одна запись day <5. Что мне нужно, так это все строки, где столбец <code>day меньше 5 для одной конкретной пары user1-user2.

1 Ответ

0 голосов
/ 21 мая 2018

Одно простое решение - отфильтровать ваш фрейм данных до того, как вы выполните groupby:

res = df[df['date'].dt.weekday < 5].groupby(...)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...