次のようなデータセットがあります: 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()
はデータセットがどれだけ離れているかを教えてくれるので、シフトを使用してそれらをオーバーラップできるはずです。