У меня есть пандас DataFrame (размер = 34,19), который я хочу использовать в качестве справочной таблицы.
Но значения, которые я хочу посмотреть, находятся "между" значениями в фрейме данных
Например:
0.1 0.2 0.3 0.4 0.5
0.1 4.01 31.86 68.01 103.93 139.2
0.2 24.07 57.49 91.37 125.21 158.57
0.3 44.35 76.4 108.97 141.57 173.78
0.4 59.66 91.02 122.8 154.62 186.13
0.5 87.15 117.9 148.86 179.83 210.48
0.6 106.92 137.41 168.26 198.99 229.06
0.7 121.73 152.48 183.4 213.88 243.33
Я знаю, что хочу найти значение для x = 5,5 y = 1,004, поэтому ответ должен быть около 114.
Я пробовалс различными методами от scipy, но значения, которые я получаю, всегда в порядке.Последний метод, который я использовал, был: inter = interpolate.interpn([np.array(np.arange(34)), np.array(np.arange(19))], np_matrix, [x_value, y_value],)
Я даже получаю неправильные значения для точек в сетке, которые существуют.
Может кто-нибудь сказать мне, что я делаю неправильно или порекомендовать простое решение для задачи?
РЕДАКТИРОВАТЬ:
Дополнительная проблема: Мои исходные данные из файла .xlsx и являются:
0.1 0.2 0.3 0.4 0.5
0.1 4.01 31.86 68.01 103.93 139.2
0.2 24.07 57.49 91.37 125.21 158.57
0.3 44.35 76.4 108.97 141.57 173.78
0.4 59.66 91.02 122.8 154.62 186.13
0.5 87.15 117.9 148.86 179.83 210.48
0.6 106.92 137.41 168.26 198.99 229.06
0.7 121.73 152.48 183.4 213.88 243.33
Но пандыдобавляет столбец индекса:
0.1 0.2 0.3 0.4 0.5
0 0.1 4.01 31.86 68.01 103.93 139.2
1 0.2 24.07 57.49 91.37 125.21 158.57
2 0.3 44.35 76.4 108.97 141.57 173.78
3 0.4 59.66 91.02 122.8 154.62 186.13
4 0.8 87.15 117.9 148.86 179.83 210.48
5 1.0 106.92 137.41 168.26 198.99 229.06
6 1.7 121.73 152.48 183.4 213.88 243.33
Поэтому, если я хочу получить доступ к x = 0,4, y = 0,15, мне нужно ввести x = 3, y = 0,15.
Данные читаются с помощью:
model_references = pd.ExcelFile(model_references_path)
Matrix = model_references.parse('Model_References')
n = Matrix.stack().reset_index().values
out = interpolate.griddata(n[:,0:2], n[:,2], (Stroke, Current), method='cubic')