Я хотел бы просто прочитать две колонки данных (значений) в виде X и Y из моего файла Excel (sheet1) и выполнить сплайн-кривую, соответствующую данным. поэтому я мог бы выбрать любое желаемое значение x (скажем, 2.6) и вычислить y.
Не могли бы вы мне помочь?
Я попробовал два метода ниже, ни один из них не работает!
двумя способами я пытался это сделать:
первый метод:
from scipy import interpolate
import numpy as np
from openpyxl import load_workbook
#read from excel file
wb = load_workbook('python_excel_read.xlsx')
sheet1 = wb.get_sheet_by_name('Sheet1')
x = np.zeros(sheet1.max_row)
y = np.zeros(sheet1.max_row)
for i in range(0,sheet1.max_row):
x[i]=sheet1.cell(row=i+1, column=1).value
y[i]=sheet1.cell(row=i+1, column=2).value
def f(x):
x_current = [x]
y_voltage = [y]
tck = interpolate.splrep(x_current, y_voltage)
return interpolate.splev(x, tck)
print f(2.6)
мой второй метод:
from scipy import interpolate
import xlwings as xw
wb = xw.Book('python_excel_read.xlsx')
sht = xw.Book('Sheet1')
x_current = sht.range1('A2:A40').value
y_voltage = sht.range2('B2:B40').value
def f(x):
x_current = [sht.range1]
y_voltage = [sht.range2]
tck = interpolate.splrep(x_current, y_voltage)
return interpolate.splev(x, tck)
print f(2.6)