Pandas使用标准选择组

时间:2018-06-11 12:19:28

标签: python pandas

我有多个网站,用户可以在不同的日期访问它们。我只想拥有在特定时间范围内首先访问的网站:

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中选择TruenewWebsites的所有网站。我试过了:

siteDate

但是这会返回错误:siteDate[newWebsites]

我理解,因为pandas正在'Columns not found: False, True'查找不存在的列siteDateTrue。但是,如何选择合适的网站?

1 个答案:

答案 0 :(得分:1)

默认情况下,DataFrame上的[]运算符会选择列。要选择行,请使用.loc[]

siteDate['ga:Users'].sum().loc[newWebsites]