[英]Counting column values based on values in other columns for Pandas dataframes
[英]Counting column values based on values in other columns in Pandas
我试图计算一个学生在 python 中使用 pandas 得到了多少个 0 和 1。 例如,我有以下数据框。
+----------------------------------+--------+
| Students | Grades |
+----------------------------------+--------+
| Student1 | 0 |
| Student1 | 1 |
| Student1 | 2 |
| Student2 | 3 |
| Student2 | 5 |
| Student2 | 0 |
| Student3 | 3 |
| Student3 | 4 |
| Student3 | 5 |
+----------------------------------+--------+
如您所见,学生 1 得了一个 0 级和一个 1 级,他总共得了 2。学生 2 只得了 1,学生 3 得了 0(没有 1 级和 0 级)。 我不知道该怎么做。 有人知道要计数的代码吗?
您可以尝试创建一个 boolean 列检查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
你可以试试:
>>> 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
参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.