簡體   English   中英

根據 Pandas 中其他列中的值計算列值

[英]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

參考:

  1. df.groupby
  2. series.reset_index
  3. series.lt
  4. df.groupby.agg

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM