我的数据集如下所示:data0, data1, data2(类似于时间与电压数据)
如果我使用以下代码加载并绘制数据集:
import pandas as pd
import numpy as np
from scipy import signal
from matplotlib import pylab as plt
data0 = pd.read_csv('data0.csv')
data1 = pd.read_csv('data1.csv')
data2 = pd.read_csv('data2.csv')
plt.plot(data0.x, data0.y, data1.x, data1.y, data2.x, data2.y)
我得到类似的东西:
现在我尝试将 data0 与 data1 关联起来:
shft01 = np.argmax(signal.correlate(data0.y, data1.y)) - len(data1.y)
print shft01
plt.figure()
plt.plot(data0.x, data0.y,
data1.x.shift(-shft01), data1.y)
fig = plt.gcf()
与输出:
-99
and
![shifted version of data1](https://i.stack.imgur.com/Bu53R.png)
其效果正如预期的那样!但如果我用 data2 尝试同样的事情,我会得到一个如下所示的图:
![shifted version of data2](https://i.stack.imgur.com/8DUmX.png)
正向转变410
。我想我只是不明白如何pd.shift()
有效,但我希望我可以使用pd.shift()
对齐我的数据集。据我了解,返回correlate()
告诉我我的数据集有多远,所以我应该能够使用移位来重叠它们。