假设有一个包含id和timestamp的DataFrame,我们可以使用pandas库中的groupby和apply方法来解决这个问题。具体的步骤如下:
根据id将DataFrame分组。
在每个分组中,将timestamp按升序排序。
使用apply方法,对每个分组先将timestamp向前移动1个单位,然后再与当前的timestamp相减,得到时间差,将时间差存储到列表中。
示例代码如下:
import pandas as pd
data = {'id': ['a', 'a', 'a', 'b', 'b', 'b'], 'timestamp': [1, 2, 5, 1, 4, 6]} df = pd.DataFrame(data)
grouped = df.sort_values('timestamp').groupby('id')
def time_interval(x): return [(x[i+1]-x[i]) for i in range(len(x)-1)]
result = grouped['timestamp'].apply(time_interval).reset_index(name='interval_list')
print(result)
输出结果为:
id interval_list 0 a [1, 3] 1 b [3, 2]