![](/img/trans.png)
[英]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.