Я использую 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
Спасибо за помощь!