该设备(两个示波器)给出不同点数的数据,并在同一时刻触发(时间栏0).(没有机会找到相同的设置).
我想要实现的是将时间与其对应的值对齐(如果错过,可能会进行内插,这里的数据变化不会很快).
如何实现数据沿两个数据帧的裁剪和匹配?
作为示例,我准备了两个数据集:一个来自Scope 1(更多的数据点),其他数据来自Scope 2(更少的数据点).这只是一个例子,实际上我从Scope 1得到了20K个样本,从其他地方得到了10K个样本.
scope1Data = pd.DataFrame({
'TIME': [-1, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1],
'V': [-0.841470985, -0.78332691, -0.717356091, -0.644217687, -0.564642473, -0.479425539, -0.389418342, -0.295520207, -0.198669331, -0.099833417, 0, 0.099833417, 0.198669331, 0.295520207, 0.389418342, 0.479425539, 0.564642473, 0.644217687, 0.717356091, 0.78332691, 0.841470985],
})
scope2Data = pd.DataFrame({
'TIME': [-1.05, -0.9, -0.75, -0.6, -0.45, -0.3, -0.15, 0, 0.15, 0.3, 0.45, 0.6, 0.75, 0.9, 1.05]
'I': [-0.887362369, -0.946300088, -0.983985947, -0.999573603, -0.992712991, -0.963558185, -0.91276394, -0.841470985, -0.751280405, -0.644217687, -0.522687229, -0.389418342, -0.247403959, -0.099833417, 0.049979169]
})
最好是从零时间(位于中间的某个位置)开始,并将范围1的时间与范围2的时间进行匹配.丢失的值可能会被外推,或者我可以从更快的作用域(Scope 1)更改数据点的数量.来自较快作用域的额外值可能会被丢弃.简单地说,从-1.05到1.05的时间数据就足够了,其余的可能会被削减.
另外,scope2中的TIME列也不再需要了.
我不期待完整的答案,当然越多越好;只要命名这个过程就足够了.
所需的输出格式可以是:
combinedData = pd.DataFrame({
'TIME': [-0.9, -0.75, -0.6, -0.45, -0.3, -0.15, 0, 0.15, 0.3, 0.45, 0.6, 0.75, 0.9]
'V': [corresponding values]
'I': [corresponding-iterpolated-values-if-not-available-from-data]
})