【发布时间】:2014-10-20 09:47:21
【问题描述】:
我的问题最好用一个例子来描述,比如t是时间索引,x是数据,我们有输入
t = [1,2,3, 7,9,11, 17,18,20]
x = [1,2,3, 4,5,6, 7,8,9]
s = ['P', 'P', 'N', 'N', 'N', 'N', 'P', 'P', 'P']
window = 2
期望的输出:
t1 = [1, 3, 7, 17]
x1 = [3, -3, -15, 24]
即我想对 x 进行聚类,如果 2 个连续样本的时间戳差异为 svalue,则将它们放在一起,然后将同一集群中的所有样本相加。此外,那些 s 值为 N 的集群使它们成为负值。 然后,将每个簇中第一个样本的时间戳作为该簇的时间。
如何在 pandas 中做到这一点?
示例说明:簇是 (1,2), (3), (4,5,6), (7,8,9)。 (3) 必须在它自己的集群中,因为即使它接近它的前任,它也有不同的符号。 (4,5,6) 都是负数(s 值为 N),因此该簇的分配值为 -(4+5+6) = -15
【问题讨论】:
标签: python numpy pandas time-series