pandas 数据框中的 count 和 countif

2024-04-28

我有一个 DF,如下所示:

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)以及完成度百分比是多少。

IE。结果应该是这样的:

course | count | in time | % completed in time
ABC      2       1         0.5
DEF      3       2         0.66
GHI      1       1         1

我怎样才能用熊猫做到这一点?

Thanks!

FP

附注这是生成输入 DF 的代码:

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]})

Use agg http://pandas.pydata.org/pandas-docs/stable/generated/pandas.core.groupby.DataFrameGroupBy.agg.html总计和计数0每组 s,最后将列除以div http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.div.html:

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas 数据框中的 count 和 countif 的相关文章

随机推荐