擅长:python、mysql、java
<h3>然后排序…</h3>
<p>非常类似于<a href="https://stackoverflow.com/a/56228157/2336654">@WeNYoBen</a>。不同之处在于,我维护现有的<code>date</code>不管它是什么,并按转换后的值排序</p>
<pre><code>df.iloc[pd.to_datetime(df.date, dayfirst=True).argsort()] \
.drop_duplicates('year', keep='last')
year date id
0 2017 01.01.2017 72297143
1 2018 22.04.2018 6de190ee
4 2019 03.12.2019 7d81a711
</code></pre>
<hr/>
<h3><code>groupby</code>和<code>idxmax</code></h3>
<p>同样,我保留了<code>date</code>中的原始数据类型。如果您想要实际的日期时间,将结果分配给数据帧是很简单的</p>
<pre><code>df.loc[pd.to_datetime(df.date, dayfirst=True).groupby(df.year).idxmax()]
year date id
0 2017 01.01.2017 72297143
1 2018 22.04.2018 6de190ee
4 2019 03.12.2019 7d81a711
</code></pre>