groupby一列,并在另一只熊猫中计算5以上的项目

DLB*_*DLB 6 python counting pandas

所以我有一个这样的df:

NAME    TRY SCORE  
Bob   1st   3  
Sue   1st   7  
Tom   1st   3  
Max   1st   8  
Jay   1st   4  
Mel   1st   7  
Bob   2nd   4  
Sue   2nd   2  
Tom   2nd   6  
Max   2nd   4  
Jay   2nd   7  
Mel   2nd   8  
Bob   3rd   3  
Sue   3rd   5  
Tom   3rd   6  
Max   3rd   3  
Jay   3rd   4  
Mel   3rd   6 
Run Code Online (Sandbox Code Playgroud)

我想算一下每个人得分超过5的haw mant时间?
进入一个看起来像这样的新df2:

NAME    COUNT  
Bob     0  
Sue     1  
Tom     2  
Mary    1  
Jay     1  
Mel     3  
Run Code Online (Sandbox Code Playgroud)

我的尝试很多 - 这是最新的

df2 = df.groupby('NAME')[['SCORE'] > 5].count().reset_index(name="count")
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 2

首先创建布尔掩码,然后aggregate通过sum-sTrue值进行如下处理1

df2 = (df['SCORE'] > 5).groupby(df['NAME']).sum().astype(int).reset_index(name="count")
print (df2)
  NAME  count
0  Bob      0
1  Jay      1
2  Max      1
3  Mel      3
4  Sue      1
5  Tom      2
Run Code Online (Sandbox Code Playgroud)

细节

print (df['SCORE'] > 5)

0     False
1      True
2     False
3      True
4     False
5      True
6     False
7     False
8      True
9     False
10     True
11     True
12    False
13    False
14     True
15    False
16    False
17     True
Name: SCORE, dtype: bool
Run Code Online (Sandbox Code Playgroud)