擅长:python、mysql、java
<p>一种方法是对数据帧进行排序,然后在groupby之后获取第一个帧。在</p>
<pre><code># first way
sorted = df.sort(['type', 'value'], ascending = [True, False])
first = sorted.groupby('type').first().reset_index()
</code></pre>
<p>另一种方法不一定只采用第一种方法,因此它可能会使所有ID对应于相同的最大值(而不是只取其中的一个)</p>
^{pr2}$
<p>示例:</p>
<p>数据</p>
<pre><code>ID type value
1 A 8
2 A 5
3 B 11
4 C 12
5 D 1
6 D 22
7 D 13
8 D 22
</code></pre>
<p>第一种方法的结果是</p>
<pre><code>type ID value
A 1 8
B 3 11
C 4 12
D 6 22
</code></pre>
<p>第二种方法保持ID=8</p>
<pre><code> ID
type value
A 8 1
B 11 3
C 12 4
D 22 6
22 8
</code></pre>
<p>(如果您不喜欢多重索引,可以在这里再次<code>reset_index()</code>)</p>