pandas datafram中的count和countif

2024-04-24 08:09:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个像这样的测向仪:

trainee | course | completed | days overdue
Ava       ABC      Yes         0
Bob       ABC      Yes         1
Charlie   DEF      No          10
David     DEF      Yes         0
Emily     DEF      Yes         0
Finn      GHI      Yes         0

我需要创建一个DF,它告诉我有多少课程已经修完,有多少课程按时上了(即,逾期0天),完成率是多少。在

也就是说,结果应该如下所示:

^{pr2}$

我怎么能和熊猫一起玩呢?在

谢谢!在

计划生育

注:以下是生成输入数据框的代码:

df = pd.DataFrame({'Trainee': ['Ava','Bob','Charlie','David','Emily','Finn'],'Course':['ABC','ABC','DEF','DEF','DEF','GHI'],'Completed': ['Yes','Yes','No','Yes','Yes','Yes'],'Days overdue':[0,1,10,0,0,0]})

Tags: nodef课程yesbobdavidabccourse
1条回答
网友
1楼 · 发布于 2024-04-24 08:09:22

每组使用^{}fot total和count 0,最后用^{}除列:

tups = [('count', 'size'), ('in time', lambda x: (x==0).sum())]
df = df.groupby('course')['days overdue'].agg(tups).reset_index()

df['% completed in time'] = df['in time'].div(df['count'])
print (df)
  course  count  in time  % completed in time
0    ABC      2        1             0.500000
1    DEF      3        2             0.666667
2    GHI      1        1             1.000000

相关问题 更多 >