我正在尝试计算一个学生在python中使用熊猫获得的0和1。例如,我有以下数据框。
+----------------------------------+--------+
| Students | Grades |
+----------------------------------+--------+
| Student1 | 0 |
| Student1 | 1 |
| Student1 | 2 |
| Student2 | 3 |
| Student2 | 5 |
| Student2 | 0 |
| Student3 | 3 |
| Student3 | 4 |
| Student3 | 5 |
+----------------------------------+--------+
正如您所看到的,student1的总成绩为1年级0,而1年级的总成绩为2。Student2仅得到1,而Student3得到0(没有1和0的成绩)。我不知道该怎么做。有人知道要计数的代码吗?
答案 0 :(得分:1)
您可以尝试创建一个布尔列,检查Grades
是否在[0,1]
中,然后在Students
上分组并求和。
out = (df['Grades'].isin([0,1]).groupby(df['Students']).sum()
.astype(int).reset_index(name='Counts'))
Students Counts
0 Student1 2
1 Student2 1
2 Student3 0
答案 1 :(得分:0)
您可以尝试:
>>> df.groupby('Students').agg(lambda x:sum(x.lt(2))).Grades.reset_index(name='Count')
Students Counts
0 Student1 2
1 Student2 1
2 Student3 0
参考: