我有一个这样的 Dataframe
学生号|Subject|SID|结果
-|-|
101|英语|1|通过
101|英语|1|通过
101|数学|3|及格
101|数学|3|及格
101|数学|33|失败
101|数学|33|失败
|102|英语|1|通过
|102|英语|1|通过
|102|数学|3|失败
|102|数学|3|失败
我想要这样的输出
SUBJECT|SID|PASS|FAIL|FAILED_STUMENT_ID
-|
英文|1|2|0|
数学|3|1|1|102
数学|33|0|1|101
我有一个很大的数据集,我想要获得关于主体和主体ID的结果,关于有多少人通过和失败。
我如何用PYTHON编写来获得这种 Dataframe ?
3条答案
按热度按时间kx5bkwkv1#
您可以使用
pivot_table
和len
的aggfunc来获取Pass
、Fail
和reset_index
的计数打印(Df):
学生号失败:
如果您需要失败的学生ID,您需要做得更多-使用
list
aggfunc在PIVOT_TABLE中包括‘Student ID’,并对列进行一些重新排列:打印(Df):
gzjq41n42#
您可以使用函数GET_DUMMIES并按“学生ID”和“主题”列分组,如下所示:
kr98yfug3#
您可以删除 Dataframe 中的所有重复项,然后使用Groupby计算每个主题的通过和失败的值。