将时间数据拆分为“运行”以绘制和检查差异

时间:2014-01-22 15:14:32

标签: python matplotlib pandas

我正在尝试研究连续记录数据集中的运行/实验之间的差异。我正在为这个数据集花费几个月的固定子集,然后对其进行分析以得出运行开始时的估计。我把它分类了一段时间。

有了这个我然后将数据切成30小时的块(运行之间的大致时间)然后把它放到字典中:

data = {}
for time in times:
    timeNow = np.datetime64(time.to_datetime())
    time30hr = np.datetime64(time.to_datetime())+np.timedelta64(30*60*60,'s')
    data[time] = df[timeNow:time30hr]

所以现在我有一个数据帧的字典,由StartTime索引,每个都包含我运行的所有数据,还有一些额外的数据,以确保我每次运行都拥有它。但是为了比较两个运行,我需要有一个共同的X值来将它们叠加在一起。现在每次运行都是不同的,我想要考虑的“相同”取决于我正在看的东西。对于下面的示例,我使用了该数据集中的最大值来“旋转”。

for time in data:
    A = data[time]
    #Find max point for value. And take the first if there is more than 1
    maxTtime = A[A['Value'] == A['Value'].max()]['DateTime'][0]
    # Now we can say we want 12 hours before and end 12 after.
    new = A[maxTtime-datetime.timedelta(0.5):maxTtime+datetime.timedelta(0.5)]
    #Stick on a new column with time from 0 point:
    new['RTime'] = new['DateTime'] - maxTtime
    #Plot values against this new time
    plot(new['RTime'],new['Value'])

这会产生如下图形:

除了我无法得到一个体面的传说,以告诉什么是什么运行,并找出有多少变化,这是伟大的。我相信我的一半问题是因为我在数据帧字典上进行迭代而导致问题。

有人可以推荐如何更好地组织这个(数据帧的字典是我能做的就是让它工作)。我想过做一个分层数据帧而不是按运行时间索引它,为运行分配一组标识符(实际时间包含在数据帧中,所以我没有问题丢失假定的启动时间)然后绘制它带着传奇。

我的最终目标是拥有一个数据集和方法,这意味着我可以使用不同的“枢轴点”调查不同运行之间的相似性和差异,并生成每个我可以查询的图表(或至少告诉哪些数据) set是直接查询数据的方法)但是无法通过创建它来解决各种错误。

如果需要,我可以将一组数据上传到csv,但我不确定将其上传到最佳位置。感谢

0 个答案:

没有答案