擅长:python、mysql、java
<p><code>sort</code>然后<code>groupby</code>+<code>nth</code>。这使您可以灵活地选择任意排列的值(通过传递列表)。如果不想重复计算同一个值,请删除重复项。你知道吗</p>
<pre><code>df.sort_values(['rate']).groupby('zipcode').rate.nth([1])
#zipcode
#30165 264.84
#36749 264.84
#Name: rate, dtype: float64
</code></pre>
<p>如果需要最小值、第四小值和最大值:</p>
<pre><code>df.sort_values(['rate']).groupby('zipcode').rate.nth([0, 3, -1])
#zipcode
#30165 245.82
#30165 271.77
#30165 344.81
#36749 245.82
#36749 271.77
#36749 305.02
#Name: rate, dtype: float64
</code></pre>
<p>超出范围的选择在不存在的组中被忽略:</p>
<pre><code>df.sort_values(['rate']).groupby('zipcode').rate.nth(5)
#zipcode
#30165 323.25
#Name: rate, dtype: float64
</code></pre>
<p>冗余选择器不重复计数(6和-1都指30165中的max元素)</p>
<pre><code>df.sort_values(['rate']).groupby('zipcode').rate.nth([6, 6, -1])
#zipcode
#30165 344.81
#36749 305.02
#Name: rate, dtype: float64
</code></pre>