我正在尝试研究连续记录数据集中的运行/实验之间的差异。我正在为这个数据集花费几个月的固定子集,然后对其进行分析以得出运行开始时的估计。我把它分类了一段时间。
有了这个我然后将数据切成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,但我不确定将其上传到最佳位置。感谢