Python Pandas groupby紧密间隔的事件

时间:2014-01-10 00:59:00

标签: python pandas

我正在努力寻找一种将密集的事件分组在一起的有效方法。如果我有以下时间生成的时间序列:

In [247]: times = pd.date_range('1/1/2011', periods=72, freq='M')
In [248]: times = times[(times < times[20]) | (times > times[40])]

所以我有2组事件,每个事件间隔1个月,两者之间有很长的差距。有没有找到这些群体的有效方法?

1 个答案:

答案 0 :(得分:2)

使用diff()方法和阈值来计算groupby数组:

import pandas as pd
import numpy as np

times = pd.date_range('1/1/2011', periods=72, freq='M')
times = times[(times < times[20]) | (times > times[40])]

s = pd.DataFrame({"value":np.random.rand(len(times)), "times":times})
g = (s.times.diff() > np.timedelta64(60, "D")).astype(int).cumsum()
print s.groupby(g).min()

输出:

                times     value
0 2011-01-31 00:00:00  0.022073
1 2014-06-30 00:00:00  0.003856