擅长:python、mysql、java
<p>使用</p>
<pre><code>df['ofTimesBetteThan1st']=0
df.loc[(df.Rank==2),'ofTimesBetteThan1st']=df.groupby('subjectID').subjectMark.diff().lt(0).sum()
df
Out[834]:
subjectID subjectMark totalMark Rank studentID ofTimesBetteThan1st
0 21376 52.000002 89.333335 2 10 3
1 21376 55.999998 91.645524 1 11 0
2 21377 18.666666 89.333335 2 10 3
3 21377 17.333334 91.645524 1 11 0
4 21379 4.333334 89.333335 2 10 3
5 21379 4.000000 91.645524 1 11 0
6 21380 4.333334 89.333335 2 10 3
7 21380 4.333334 91.645524 1 11 0
8 22601 10.000000 89.333335 2 10 3
9 22601 9.978859 91.645524 1 11 0
</code></pre>