Find_peaks Pandas фрейм данных: сигнал Scipy - PullRequest
0 голосов
/ 02 марта 2020

Я использую for-l oop для извлечения строк фрейма данных pandas, опуская последний столбец. В каждой строке 467 значений, следовательно, для каждой итерации должно быть 467 столбцов и 1 строка.

for i in range(0,n): 
    x = file.iloc[[i]]                        ##I use this format to end up with a data frame 
    x = x.drop(columns = 'Z plane', axis=1)
    x.plot(kind = 'scatter', legend = False)  ##I have a problem with the plotting but will ask this in a separate question. 

Конечная цель - использовать функцию сигнала scipy, чтобы найти FWHM пиков и построить их. Для этого я делаю:

x = file.iloc[[0]]                             ##just a test with the first row 
x = x.drop(columns = 'Z plane', axis = 1)      
x = np.array(x)                                ##convert to 1D nparray 
x.size                                         ##this returns 467 - looks pretty 1D to me 
peaks, _ = find_peaks(x)
results_fwhm = peak_widths(x, peaks, rel_height = 1)
results_fwhm[0]

plt.plot(x)
plt.plot(peaks, x[peaks], 'x')
plt.hlines(*results_fwhm[1:], color = 'C2')
plt.show()

Но когда я пытаюсь его запустить, я всегда получаю ошибку:

ValueError: x должен быть массивом 1D

Спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...