我有數據集看起來像下面這樣:data0,data1,data2(類似於時間與電壓數據)使用pandas.shift()來對齊數據集的基礎上scipy.signal.correlate
如果我加載和繪製使用類似代碼的數據集:
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)
我得到的是這樣的:
現在我嘗試用數據1到相關數據0:
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來重疊它們。
謝謝。這很有道理。我想根據可用的文檔,我不清楚pd.shift()是如何工作的。 –