【问题标题】:Percentage based on column value基于列值的百分比
【发布时间】:2020-12-09 08:11:50
【问题描述】:

我正在努力寻找最佳最有效的方法来计算每位教师在我的 df 中任教时未获得终身教职的百分比。

例如下面的df:

District   | Teacher Name | Tenured?
  55         Bo Carns         Yes
  42         Bo Carns         No
  55         Steven Ast       No
  43         Fiona Tan        Yes
  43         Steven Ast       Yes
  43         Mike Po          No
  31         Steve Chi        No

每个老师都可以在多个地区任教,但他们可以是终身教职的,也可以是非终身教职的,所以我想计算我的 df 中所有教师都没有获得终身教职的百分比,以找到教非终身教职的教师最多 (所以对于每个老师来说,终身列的次数为 no / df 的所有行)

预期的输出是:

Teacher Name | pct
Bo Carns       .5
Steven Ast     .5
Fiona Tan      0
Mike Po        1
Steve Chi      1

其中 pct 是他们未在所有记录或所有地区任职的百分比

感谢您花时间查看我的问题

【问题讨论】:

  • 你能显示预期的输出吗?
  • 添加了预期的输出感谢您查看@BEN_YO

标签: python python-3.x pandas data-science


【解决方案1】:

你可以试试

s = df['Tenured?'].eq('Yes').groupby(df.TeacherName).mean()
Out[57]: 
TeacherName
BoCarns      0.5
FionaTan     1.0
MikePo       0.0
SteveChi     0.0
StevenAst    0.5
Name: Tenured?, dtype: float64

【讨论】:

  • 还有一种方法可以计算百分比而不是平均值吗?谢谢
  • @Chris90Ch 想一想,如果你想计算 0 , 0, 0 ,1, 1 中有多少个 1,如果你取平均值,这等于百分比~
猜你喜欢
  • 2021-09-10
  • 2021-09-05
  • 1970-01-01
  • 2023-03-31
  • 2019-06-03
  • 2020-11-23
  • 2013-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多