如何存储一系列时间序列数据,包括元数据

时间:2017-09-09 22:22:22

标签: python arrays numpy time-series

我有一些原始数据,其中包含一系列(大约1e7)事件,每个事件都包含一些元数据(记录时间,频道号等)和实际时间系列。通过处理数据,我为每个事件计算一个(大约20个)单值特征的数组。所以我最终得到了以下单值和一个数组的数据结构:

1: eventID, ToR, channel, feat1, feat2,..., signal(shape=30000,)
2: eventID, ToR, channel, feat1, feat2,..., signal
3: .
   .

如果我想:

,现在用Python构建这些数据的最佳方法是什么?
  1. 访问和绘制信号,由其eventID索引
  2. 整理所有事件(或部分事件)并绘制feat1与feat2
  3. 按名称
  4. 访问数据列
  5. 通过提供两个功能
  6. 可能会访问eventID
  7. 可能删除单个事件
  8. 虽然将数据存储在Python字典中肯定是可能的,但我认为有更快的方法。我似乎不可能使用pandas数据帧,因为数据的长度不一样。

    通过采用类型object的numpy数组,可以将数组存储在[1, 2, 3, [4,5,6]]这样的数组中,但是我失去了通过其名称访问数据的能力,这至少不是首选

    我可能对这种结构没有正确的感觉,那么适当的方法是什么呢?

1 个答案:

答案 0 :(得分:1)

我将所有元数据存储在一个DataFrame中:

1: eventID, ToR, channel, feat1, feat2,...
2: eventID, ToR, channel, feat1, feat2,...
3: ...

然后对于具有不同长度的时间序列,我会将每个时间序列存储在pd.Series()中,在与元数据索引相同的dict中存储(或者可能由eventID),或者list(时间序列的N行映射到元数据的第N行)。