擅长:python、mysql、java
<p>在加州大学你可以做到:</p>
<pre><code>In [8]:
import pandas as pd
# construct a df
df = pd.DataFrame(array)
df
Out[8]:
GROUPID HASNEAR DISTANCE
0 1 b'YES' 54.2340
1 1 b'YES' 1.0001
2 2 b'YES' 4.2340
3 3 b'YES' 0.2340
</code></pre>
<p>现在您可以在GROUPID列上<code>groupby</code>,调用<code>idxmin</code>返回感兴趣列的最小值的索引,并使用它来过滤原始数据:</p>
^{pr2}$
<p>您可以看到<code>idxmin</code>返回的是最小值的索引:</p>
<pre><code>In [10]:
df.groupby('GROUPID')['DISTANCE'].idxmin()
Out[10]:
GROUPID
1 1
2 2
3 3
Name: DISTANCE, dtype: int64
</code></pre>
<p>您可以通过调用<code>.values</code>将其转换回numpy数组:</p>
<pre><code>In [11]:
df.loc[df.groupby('GROUPID')['DISTANCE'].idxmin()].values
Out[11]:
array([[1, b'YES', 1.0001],
[2, b'YES', 4.234],
[3, b'YES', 0.234]], dtype=object)
</code></pre>