擅长:python、mysql、java
<pre><code>df2 = df.groupby('email', as_index=False).nth([0,-1])
</code></pre>
<p>您可以尝试:</p>
<pre><code>d={'mgr:mgr':'hired as mgr','emp:mgr':'promoted to mgr','emp:emp':'hired as emp','mgr:emp':'status change'}
#created a dict for mapping
</code></pre>
<p>最后:</p>
<pre><code>df2.loc[:,'status']=df2.groupby('email')['level'].transform(':'.join).map(d)
</code></pre>
<p><code>df2</code>的输出:</p>
<pre><code> date email level status
0 01/01/2000 john@abc.com mgr hired as mgr
2 10/01/2001 john@abc.com mgr hired as mgr
3 14/02/2000 kimdo@abc.com emp promoted to mgr
4 19/10/2001 kimdo@abc.com mgr promoted to mgr
5 12/05/2000 waint@abc.com emp hired as emp
7 14/04/2001 waint@abc.com emp hired as emp
8 22/05/2000 neds@abc.com mgr status change
10 12/06/2001 neds@abc.com emp status change
</code></pre>