2017-03-06 61 views
1

我创建了以下代码,它计算一个人(通过他们的login_id)在一年中登录到程序的次数。Python中的计数和groupby

data1.query("'2015-12-01' <= login_date <= '2016-12-01'").groupby(['employer_key','account_id']).size().reset_index().groupby(['employer_key','account_id'])[[0]].count() 

输出看起来是这样的:

employer_key account_id # times logged in 
Apple   X1    1 
Google   Y5    2 
Facebook   X3    4 
Apple   X2    2 
Facebook   Y2    1 

我想算account_ids的数量为每个单独employer_key,这样我可以确定多个账户如何记录在每一个人的雇主在一年的时间。

输出会希望是这个样子:

employer_key user_logins 
Apple   2    
Google   1    
Facebook   2    
+0

多少*独特*帐户? –

+0

在我的实际数据集中,我有数千人。 – PhishFood

+0

不,我的问题是,如果你想为每个雇主统计*独特*用户。我认为你的数据可能已经在该列中只有唯一的'account_id',所以它可能是一个争议点。 –

回答

1

我想这应该工作:

data.groupby(['employer_key','account_id']).count().\ 
      unstack().sum(axis=1).astype(int) 
#employer_key 
#Apple  2 
#Facebook 2 
#Google  1 
#dtype: int64 
+0

我的上面的代码是如何分解到您提供的代码中的?当我运行你的代码时,它会返回所有日期的数据,而不是我指定的一年期间。我不确定如何将一年期间整合到您的代码中。谢谢! – PhishFood

+1

我的答案适用于您的代码输出,如第一个输出块所示。 – DyZ

+0

连接两个代码的具体部分是什么?非常感谢您的帮助,我非常感谢。 – PhishFood