Pandas TypeError:第一个参数必须是实序列2信号。频谱图

Pandas TypeError:第一个参数必须是实序列2信号。频谱图,pandas,numpy,scipy,signal-processing,Pandas,Numpy,Scipy,Signal Processing,我试图从电子读数中提取一个信号,并将其分解成光谱图,但我一直得到一个奇怪的错误。代码如下: f, t, Sxx = signal.spectrogram(i_data.values, 130) plt.pcolormesh(t, f, Sxx) plt.ylabel('Frequency [Hz]') plt.xlabel('Time [sec]') plt.show() 下面是错误: convert_to_spectrogram(i_data.iloc[1000,:10020].dropna

我试图从电子读数中提取一个信号,并将其分解成光谱图,但我一直得到一个奇怪的错误。代码如下:

f, t, Sxx = signal.spectrogram(i_data.values, 130)
plt.pcolormesh(t, f, Sxx)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()
下面是错误:

convert_to_spectrogram(i_data.iloc[1000,:10020].dropna().values)
Traceback (most recent call last):

  File "<ipython-input-140-e5951b2d2d97>", line 1, in <module>
    convert_to_spectrogram(i_data.iloc[1000,:10020].dropna().values)

  File "<ipython-input-137-5d63a96c8889>", line 2, in convert_to_spectrogram
    f, t, Sxx = signal.spectrogram(wf, 130)

  File "//anaconda3/lib/python3.7/site-packages/scipy/signal/spectral.py", line 750, in spectrogram
    mode='psd')

  File "//anaconda3/lib/python3.7/site-packages/scipy/signal/spectral.py", line 1836, in _spectral_helper
    result = _fft_helper(x, win, detrend_func, nperseg, noverlap, nfft, sides)

  File "//anaconda3/lib/python3.7/site-packages/scipy/signal/spectral.py", line 1921, in _fft_helper
    result = func(result, n=nfft)

  File "//anaconda3/lib/python3.7/site-packages/mkl_fft/_numpy_fft.py", line 335, in rfft
    output = mkl_fft.rfft_numpy(x, n=n, axis=axis)

  File "mkl_fft/_pydfti.pyx", line 609, in mkl_fft._pydfti.rfft_numpy

  File "mkl_fft/_pydfti.pyx", line 502, in mkl_fft._pydfti._rc_fft1d_impl

TypeError: 1st argument must be a real sequence 2
convert_to_spectrogram(i_data.iloc[1000,:10020].dropna().values)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
将_转换为_谱图(i_data.iloc[1000,:10020].dropna().values)
文件“”,第2行,转换为光谱图
f、 t,Sxx=信号频谱图(wf,130)
文件“//anaconda3/lib/python3.7/site packages/scipy/signal/spectrum.py”,第750行,频谱图
模式(psd)
文件“//anaconda3/lib/python3.7/site packages/scipy/signal/spectrum.py”,第1836行,在“spectrum”助手中
结果=_fft_helper(x,win,detrend_func,nperseg,noverlap,nfft,sides)
文件“//anaconda3/lib/python3.7/site packages/scipy/signal/spectrum.py”,第1921行,在
结果=func(结果,n=nfft)
文件“//anaconda3/lib/python3.7/site packages/mkl_fft/_numpy_fft.py”,rfft中第335行
输出=mkl\u fft.rfft\u numpy(x,n=n,轴=轴)
文件“mkl_fft/_pydfti.pyx”,第609行,在mkl_fft._pydfti.rfft_numpy中
文件“mkl_fft/_pydfti.pyx”,第502行,在mkl_fft._pydfti._rc_fft1d_impl中
TypeError:第一个参数必须是实数序列2
我的读数有130个观察值的完整周期,并存储为单个df值。我特别使用的波可以找到。有人知道这个错误是什么意思吗


(小免责声明,我对信号处理知之甚少,因此如果这是一个天真的问题,请原谅我)

Python 3.6.9,scipy 1.3.3

下载你的并用熊猫阅读。阅读_csv,我可以生成以下光谱图

import matplotlib.pyplot as plt
import pandas as pd
from scipy.signal import spectrogram
i_data = pd.read_csv('wave.csv')
f, t, Sxx = spectrogram(i_data.values[:, 1], 130)
plt.pcolormesh(t, f, Sxx)
plt.ylabel('Frequency [Hz]')
plt.xlabel('Time [sec]')
plt.show()

df中有多少列?什么
d类型
?如何获取i_数据?i_数据只是从电线上读取的数据。列是双精度的时间序列。那么,它是列表、数组吗?对不起。这是一行pandas数据帧,我在其中使用.values方法,因此它将是一个numpy.ndarrayats奇怪的是,您所拥有的也适用于我。但是wave.csv最初只是类似文件数据帧的随机行。当我从数据框中取出一行时,它似乎不起作用。我怀疑我有一个变量类型问题。如果你打印这一行的形状,你会得到什么?(10019,)是我得到的我无法解释它/:我将尝试一个for循环?或者类似的。