擅长:python、mysql、java
<p>您可以按时间对数据帧排序,然后按id分组,并选择每个分组中的最后一行。这是日期最大的一行。你知道吗</p>
<pre><code>last_rows = df.sort_values('time').groupby('id').last()
</code></pre>
<p>然后将原始数据帧与新数据帧合并:</p>
<pre><code>result = df.merge(last_rows, on=["id", "type"])
# time_x id type time_y
#0 2013-11-02 1 xF1yz 2013-11-02
#1 2013-11-02 1 xF1yz 2013-11-02
#2 2006-07-07 5 F5spo 2006-07-07
#3 2006-07-06 5 F5spo 2006-07-07
</code></pre>
<p>如果需要,请删除最后一个重复列:</p>
<pre><code>result.drop('time_y', axis=1, inplace=True)
</code></pre>