我有一些原始数据,其中包含一系列(大约1e7)事件,每个事件都包含一些元数据(记录时间,频道号等)和实际时间系列。通过处理数据,我为每个事件计算一个(大约20个)单值特征的数组。所以我最终得到了以下单值和一个数组的数据结构:
1: eventID, ToR, channel, feat1, feat2,..., signal(shape=30000,)
2: eventID, ToR, channel, feat1, feat2,..., signal
3: .
.
如果我想:
,现在用Python构建这些数据的最佳方法是什么?虽然将数据存储在Python字典中肯定是可能的,但我认为有更快的方法。我似乎不可能使用pandas数据帧,因为数据的长度不一样。
通过采用类型object
的numpy数组,可以将数组存储在[1, 2, 3, [4,5,6]]
这样的数组中,但是我失去了通过其名称访问数据的能力,这至少不是首选
我可能对这种结构没有正确的感觉,那么适当的方法是什么呢?
答案 0 :(得分:1)
我将所有元数据存储在一个DataFrame中:
1: eventID, ToR, channel, feat1, feat2,...
2: eventID, ToR, channel, feat1, feat2,...
3: ...
然后对于具有不同长度的时间序列,我会将每个时间序列存储在pd.Series()
中,在与元数据索引相同的dict中存储(或者可能由eventID
),或者list(时间序列的N行映射到元数据的第N行)。