【发布时间】:2016-12-17 10:21:19
【问题描述】:
我在 python pandas 数据框对象中有一个时间序列,我想根据索引创建一个组,但我想要重叠的组,即组不是不同的。 header_sec 是索引列。 每组包含一个 2 秒的窗口。 输入数据帧
header_sec
1 17004 days 22:17:13
2 17004 days 22:17:13
3 17004 days 22:17:13
4 17004 days 22:17:13
5 17004 days 22:17:14
6 17004 days 22:17:14
7 17004 days 22:17:14
8 17004 days 22:17:14
9 17004 days 22:17:15
10 17004 days 22:17:15
11 17004 days 22:17:15
12 17004 days 22:17:15
13 17004 days 22:17:16
14 17004 days 22:17:16
15 17004 days 22:17:16
16 17004 days 22:17:16
17 17004 days 22:17:17
18 17004 days 22:17:17
19 17004 days 22:17:17
20 17004 days 22:17:17
我的第一组应该有
1 17004 days 22:17:13
2 17004 days 22:17:13
3 17004 days 22:17:13
4 17004 days 22:17:13
5 17004 days 22:17:14
6 17004 days 22:17:14
7 17004 days 22:17:14
8 17004 days 22:17:14
第二组从上一个索引开始,取上一秒记录的1/2。
7 17004 days 22:17:14
8 17004 days 22:17:14
9 17004 days 22:17:15
10 17004 days 22:17:15
11 17004 days 22:17:15
12 17004 days 22:17:15
13 17004 days 22:17:16
14 17004 days 22:17:16
第三组.....
13 17004 days 22:17:16
14 17004 days 22:17:16
15 17004 days 22:17:16
16 17004 days 22:17:16
17 17004 days 22:17:17
18 17004 days 22:17:17
19 17004 days 22:17:17
20 17004 days 22:17:17
如果我在索引上进行分组,
dfgroup=df.groupby(df.index)
这会每秒提供一组。合并这些组的最佳方法是什么?
【问题讨论】:
-
每秒总是有 4 个条目吗?
-
否,因为缺少数据。这些实际上是每秒收集的样本。实际数据每秒有 100 个样本,但有时会丢失条目。
-
您问题中的示例不一致。第二组从 22:17:14 开始占用 2 行,但第三组从 22:17:15 开始不占用任何行。第一组从 22:17:15 获取所有值,但第二组不从 22:17:16 获取所有值。你能澄清一下吗?我在想,您需要的是给定秒的所有值 + 前一秒的最后 2 个值 + 下一秒的前 2 个值。对吗?
-
每个组由一个 2 秒的窗口组成,但它以重叠的方式移动,其中只有前一秒的一半条目进入下一组。因此,从前一秒获取 1/2 个条目 + 当前秒 + 从下一秒获取 1/2 个条目。第三组占用前第二个条目的 1/2,即条目号 13 和 14 重复给出 13-20
标签: python pandas dataframe group-by time-series