前提・実現したいこと
pandas初心者です。
AttributeError: 'Series' object has no attribute 'flags'のエラーについて自力で解決できませんでした。原因を解決法を教えていただけると幸いです。
発生している問題・エラーメッセージ
FFT_data["channel%s" % (l + 1)] = channel_data["channel%s" % (l + 1)].apply(convolution, args = (index_len, dt, "blackman")) yf = fft(conv_data)/(data_len/2) AttributeError: 'Series' object has no attribute 'flags'
該当のソースコード
import pandas as pd import numpy as np from scipy import signal import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from scipy.fftpack import fft, fftfreq df = pd.read_table("../data/20201008_6.TXT", delim_whitespace = True, header = None) ds = 500 #サンプリング周波数 dt = 1/ds #サンプリング間隔 columns_len = len(df.columns) #列数 index_len = len(df.index) #行数 num_channel = int(columns_len/2) ################################################################################################################################# ################################################################################################################################# #窓関数作成畳み込みとFFT # x : 畳み込み、FFTを行うデータ # data_len : データの長さ # dt : サンプリング間隔 # mado : 窓関数の種類(ハニング窓、ハミング窓、ブラックマン窓) def convolution(x, data_len, dt, mado): if mado == "hann": w = signal.hann(data_len) if mado == "hamming": w = signal.hamming(data_len) if mado == "blackman": w = signal.blackman(data_len) conv_data = w * x yf = fft(conv_data)/(data_len/2) yf[0] = yf[0]/2 freq = fftfreq(data_len, dt) yf = np.abs(yf)[1:data_len//2] print(yf) freq = freq[1:data_len//2] return pd.Series(yf, index=freq) # 全データFFT解析 FFT_data = {} for l in range(num_channel): FFT_data["channel%s" % (l + 1)] = channel_data["channel%s" % (l + 1)].apply(convolution, args = (index_len, dt, "blackman")) print(FFT_data) ################################################################################################################################# #################################################################################################################################
試したこと
- yf = fft(conv_data)/(data_len/2)をmapで記述してみたが、tuple index out of rangeというエラーが出現する。そのエラーについても解決できなかった。
- 畳み込みを行う関数とFFTを行う関数で分けてみたが、FFTを行う関数の方でエラーが出た。
補足情報(FW/ツールのバージョンなど)
- python 3.8.5
- scipy 1.5.2
- pandas 1.1.3
- numpy 1.19.2
回答1件
あなたの回答
tips
プレビュー