<p>可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.pivot.html" rel="nofollow noreferrer">^{<cd1>}</a>,后跟通过<a href="https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.loc.html" rel="nofollow noreferrer">^{<cd2>}</a>的赋值。你知道吗</p>
<pre><code>df_pvt = df.pivot(index='subjectID', columns='studentID', values='subjectMark')
df['Count_Better_than_1st'] = 0
df.loc[df['Rank'] == 2, 'Count_Better_than_1st'] = (df_pvt[10] > df_pvt[11]).sum()
print(df)
subjectID subjectMark totalMark Rank studentID Count_Better_than_1st
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>
<p>以下是<code>df_pvt</code>供参考。学生10的表现有3倍于:</p>
<pre><code>print(df_pvt)
studentID 10 11
subjectID
21376 52.000002 55.999998
21377 18.666666 17.333334
21379 4.333334 4.000000
21380 4.333334 4.333334
22601 10.000000 9.978859
</code></pre>