Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用标准进行分组选择_Python_Pandas - Fatal编程技术网

Python 使用标准进行分组选择

Python 使用标准进行分组选择,python,pandas,Python,Pandas,我有多个网站,用户在不同的日期访问它们。我只希望在特定时间范围内首先访问的网站: sites = db.groupby('websitename') newWebsites = (sites['date'].min() >= '2018-02-17') & (sites['date'].min() < '2018-02-24') 我想做的是计算这些网站在接下来几周的用户数量。然后我做的是按websitename和date分组: siteDate

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

sites = db.groupby('websitename')
newWebsites = (sites['date'].min() >= '2018-02-17') &
              (sites['date'].min() < '2018-02-24')
我想做的是计算这些网站在接下来几周的用户数量。然后我做的是按
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

现在我想从
siteDate
中选择所有在
newWebsites
中具有
True
的网站。我试过:

siteDate[newWebsites]
但这会返回一个错误:
“未找到列:False,True”


我理解,因为熊猫正在
siteDate
中查找不存在的
True
False
列。但是如何选择正确的网站呢?

默认情况下,数据框上的
[]
操作符选择列。要选择行,请使用
.loc[]

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

但由于我有一个groupby对象,这会导致以下错误:AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“loc”,请尝试使用“apply”method@HansBambel:抱歉,请立即尝试我的更新。如果它不太管用,就玩一玩。您的实际用例因其具有多索引标签而稍微复杂,并且您还没有给我们提供MVCE,因此我不能向您保证100%的工作代码,但这是总体思路。感谢您的想法!我使用
siteDate['ga:Users'].sum().loc[newWebsites[newWebsites].index]
siteDate['ga:Users'].sum().loc[newWebsites]