我有多个网站,用户可以在不同的日期访问它们。我只想拥有在特定时间范围内首先访问的网站:
cqlsh IP
这为我提供了一个系列对象,每个网站都有一个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()
但现在我只想要特定网站(在newWebsites中指定的网站。在这种情况下为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
)。
现在,我想从hooli.com
中选择True
中newWebsites
的所有网站。我试过了:
siteDate
但是这会返回错误:siteDate[newWebsites]
我理解,因为pandas正在'Columns not found: False, True'
查找不存在的列siteDate
和True
。但是,如何选择合适的网站?
答案 0 :(得分:1)
默认情况下,DataFrame上的[]
运算符会选择列。要选择行,请使用.loc[]
:
siteDate['ga:Users'].sum().loc[newWebsites]