我有如下所示的数据集: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
和
正如预期的那样工作!但如果我用 data2 做同样的事情,我会得到一个看起来像这样的图:
有一个正偏移410
。我想我只是不明白它是如何pd.shift()
工作的,但我希望我可以用它pd.shift()
来对齐我的数据集。据我了解,来自的返回correlate()
告诉我我的数据集有多远,所以我应该能够使用 shift 来重叠它们。