スペクトルや時系列センサーデータの前処理をしています。
行300、列180データフレームのすべての列を
savgol_filterを用いてループ処理を行い、平滑化、微分させたのち
結果を別のデータフレームとして作成したいです。
数個の列なら
import scipy.signal
m1=scipy.signal.savgol_filter(df[1], 5, 2, deriv=1)
m2=scipy.signal.savgol_filter(df[2], 5, 2, deriv=1)
m3=scipy.signal.savgol_filter(df[3], 5, 2, deriv=1)
m4=scipy.signal.savgol_filter(df[4], 5, 2, deriv=1)
df2=pd.DataFrame(list(zip(m1,m2,m3,m4)))でつくれました。
180個ではコードが長くなるので、上手な方法はないでしょうか。
現状は以下のコードです
import scipy.signal
for i in df.columns:
scipy.signal.savgol_filter(df[i],5, 2, deriv=1)
df2=pd.DataFrame(scipy.signal.savgol_filter(df[i],5, 2, deriv=1))
df2
このコードではdf1列目のフィルター結果だけが格納された1列300行のdf2ができてしまいました。
対策があればお聞きしたいです。
基本的なことが分かっていないかもしれませんが、
何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。