如何做这个pandas group by和count功能?

时间:2016-05-19 10:43:38

标签: python pandas dataframe

我有一个如下所示的数据框,我需要获得按类别和域分组的“未完成”主要任务和子任务的数量。即Groupby类别>按域分组>未完成的子任务数量&撤消主要任务的数量(如果任何子任务未完成主要任务,则视为未完成)

步骤1:计算每个类别和域下未完成的Subs_Task的数量?

步骤2:我想计算每个类别和域下的未执行主要任务的数量?意味着Sub_tasks属于Main_Tasks .. ??如果任何sub_tasks没有完成,则主要任务被视为未完成。

 df.groupby(['Category','Domain','Main_Task']).count()

给予计数我也想找到结果

  Category   Main_Task    Sub_Task    Domain    Result
0    A        Main_Task1    Sub_Task1     CC      Done
1    A        Main_Task1    Sub_Task2     AB      Not-Done
2    A        Main_Task2    Sub_Task3     AB      Done
3    A        Main_Task2    Sub_Task4     DD      Not-Done
4    B        Main_Task3    Sub_Task5     SC      Done
5    B        Main_Task3    Sub_Task6     CD      Not-Done
6    B        Main_Task5    Sub_Task7     PD      Done
7    B        Main_Task5    Sub_Task8     CC      Not-Done
8    A        Main_Task1    Sub_Task9     PD      Done
9    B        Main_Task3    Sub_Task10    CC      Done

任何有效的解决方案?

1 个答案:

答案 0 :(得分:0)

结果未完成过滤数据帧:

notdone_df = df[df['Result'] == "Not-Done"]

第1步的答案:

notdone_df.groupby(['Category', 'Domain', 'Sub_Task'])['Result'].count()

第2步的答案:

not_done[['Category', 'Domain', 'Maintask']].drop_duplicates().groupby(['Category', 'Domain']).count()

我认为这可以解决您的问题。

没有删除重复项,你也可以使用groupby。