我有一个如下所示的数据框,我需要获得按类别和域分组的“未完成”主要任务和子任务的数量。即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
任何有效的解决方案?
答案 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。