擅长:python、mysql、java
<p>不需要排序,只需为每个索引组取max-min</p>
<pre><code># set index
df = df.set_index(df['Index'])
# make sure you have datetime dtype
df['Time'] = pd.to_datetime(df['Time'])
# group by index
grouped = df.groupby(df.index)
# ... and take max-min
ptp = (grouped['Time'].max()-grouped['Time'].min()).dt.total_seconds()/60
</code></pre>
<pre><code>ptp
Out[29]:
Index
1 300.0
3 88.0
Name: Time, dtype: float64
</code></pre>
<p>请注意,我稍微修改了示例数据,以便可以看到索引的传播:</p>
<pre><code>Index Time
1 2020-03-30T13:00:00
1 2020-03-30T14:00:00
1 2020-03-30T15:55:00
1 2020-03-30T18:00:00
3 2020-04-03T09:00:00
3 2020-04-03T09:50:00
3 2020-04-03T10:28:00
</code></pre>