<p>我有一个<code>DataFrame</code>,看起来像这样:</p>
<pre><code> name value
date
2016-05-01 kelly 20
2016-05-05 john 12
2016-05-05 sarah 25
2016-05-05 george 3
2016-05-05 tom 40
2016-05-07 kara 24
2016-05-07 jane 90
2016-05-07 sally 39
2016-05-07 sam 28
</code></pre>
<p>我想得到前3行(根据价值)最好每个日期。
我在期待这样的事情:</p>
^{pr2}$
<p>但我也同意:</p>
<pre><code> name value
date
2016-05-05 tom 40
2016-05-07 jane 90
2016-05-07 sally 39
</code></pre>
<p>我试过<code>df.nlargest(3, 'value')</code>但是我得到了一个奇怪的结果:</p>
<pre><code> name value
date
2016-05-01 kelly 20
2016-05-01 kelly 20
2016-05-01 kelly 20
2016-05-05 tom 40
2016-05-05 tom 40
2016-05-05 tom 40
2016-05-05 sarah 25
2016-05-05 sarah 25
2016-05-05 sarah 25
2016-05-07 kara 24
2016-05-07 kara 24
...
2016-05-07 sally 39
2016-05-07 sally 39
2016-05-07 jane 90
2016-05-07 jane 90
2016-05-07 jane 90
</code></pre>
<p>我试着一天一天地运行它:<br/>
<code>[df.ix[day].nlargest(3, 'value') for day in df.index.unique()]</code></p>
<p>但我遇到了同样的问题(每个名字重复3次)</p>