擅长:python、mysql、java
<p>原问题(如上所述):</p>
<p>下面是一个成为dfdata的较大字典的示例</p>
<pre><code>data ={'StudentId':['AAdams','AAdams','AAdams','AAdams','AAdams','AAdams',
'BBrooks','BBrooks','BBrooks','BBrooks','BBrooks',],
'year':[2015,2015,2015,2015,2015,2015,2015,2015,2015,2016,2016],
'month':[11,11,11,11,12,12,12,12,12,1,1],
'day':[15,16,21,23,1,2,15,18,30,5,7],
'BookLevel':[1.5,1.5,1.2,1.4,1.7,1.8,3.2,3.1,3.8,3.3,3.4]}
</code></pre>
<p>我想删除每个学生第一个月的最大值。如果有第二次出现,我想保留它。除了每个学生的第一个月,我不想改变任何月份</p>
<p>这是我的新解决方案:</p>
^{pr2}$
<p>这使得第一个月的最高图书水平达到了每组学生的最高水平。在</p>
<p>然后我用cumcount做了一个分组。在每个学生第一个月的最高图书级别旁边,都会有一个零。在</p>
^{3}$
<p>然后我选择所有没有零的行进行分组</p>
<pre><code>df2 = df(df.groupby('StudentId').cumcount() !=0])
</code></pre>
<p>任务完成了!
原始尝试是一个很好的例子,它可以看到渐进式的进展,但却忽略了最初的目标。在</p>