擅长:python、mysql、java
<p>可以将<code>groupby</code>与<code>apply</code>和减法<code>max - min</code>结合使用:</p>
<pre><code>df1 = df.groupby('session_id').timestamp.apply(lambda x: x.max() - x.min()).reset_index()
df1.rename({'timestamp':'timeSpent'},axis=1,inplace=True)
print(df1)
session_id timeSpent
0 sess1 00:00:00
1 sess2 00:21:44.118000
2 sess3 00:00:00
</code></pre>
<p>以秒为单位:</p>
<pre><code>df1 = df.groupby('session_id').timestamp.apply(lambda x: x.max() - x.min()).reset_index()
df1.rename({'timestamp':'timeSpent'},axis=1,inplace=True)
df1['timeSpent'] = df1['timeSpent'].dt.total_seconds()
print(df1)
session_id timeSpent
0 sess1 0.000
1 sess2 1304.118
2 sess3 0.000
</code></pre>