У меня есть несколько веб-сайтов, пользователи которых обращаются к ним в разные даты.Я только хочу, чтобы веб-сайты были доступны первыми в определенный период времени:
sites = db.groupby('websitename')
newWebsites = (sites['date'].min() >= '2018-02-17') &
(sites['date'].min() < '2018-02-24')
Это дает мне объект серии с True
или False
для каждого веб-сайта:
websitename
google.com False
facebook.com False
hooli.com True
Name: date, Length: 70, dtype: bool
Я хотел бы рассчитать количество пользователей этих сайтов в следующие недели.Затем я делаю группировку по websitename
и date
:
siteDate = db.groupby(['websitename', 'date'])
Вызов siteDate['ga:Users'].sum()
уже дает мне то, что я хочу:
websitename date
google.com 2018-04-03 1
facebook.com 2018-04-07 1
hooli.com 2018-02-17 1
2018-02-20 1
2018-03-07 1
2018-03-08 3
Name: users, Length: 794, dtype: int64
Но теперь я хочу только конкретныесайты (указанные в newWebsites. В данном случае hooli.com
).
Теперь я бы хотел выбрать все сайты, которые имеют True
в newWebsites
из siteDate
.Я попытался:
siteDate[newWebsites]
Но это возвращает ошибку: 'Columns not found: False, True'
Что я понимаю, потому что панды ищет в siteDate
столбцы True
и False
, которыене существует.Но как тогда выбрать правильные сайты?