如何从将在列和行之间插入的Python表中获取值?

如何从将在列和行之间插入的Python表中获取值?,python,pandas,dataframe,interpolation,Python,Pandas,Dataframe,Interpolation,我已经在Pandas中创建了表(DataFrame)。它是一个二维表格,整数作为列索引,整数作为行索引(它是位置x和位置y)。 我知道如何使用索引获取该表“单元格”中的值,但我希望从将进行线性插值的“列和行之间”获取值 最好,我希望对保存在两个表中的大量x,y执行此操作Position\ux(mxn),Position\uy(mxn),并将结果放入表results(mxn) 以下是Excel中此类过程的示例: 谢谢 Szymon如果我理解你的问题: 首先,可以使用将多列结果表转换为单列结果表

我已经在Pandas中创建了表(DataFrame)。它是一个二维表格,整数作为列索引,整数作为行索引(它是
位置x
位置y
)。 我知道如何使用索引获取该表“单元格”中的值,但我希望从将进行线性插值的“列和行之间”获取值

最好,我希望对保存在两个表中的大量x,y执行此操作
Position\ux(mxn)
Position\uy(mxn)
,并将结果放入表
results(mxn)

以下是Excel中此类过程的示例:

谢谢
Szymon

如果我理解你的问题:

首先,可以使用将多列结果表转换为单列结果表

然后,可以使用来插值


希望我能帮上忙。

我找到了一种90%有效的方法,但它有两个缺点: 1) 索引和列需要严格增加, 2) 对于一组n个输入对,它绘制n x n结果数组,而不是仅绘制n个结果(例如,下面对于3对输入点,我只需要3个结果值,使用该代码,我将得到9个值作为所有输入点的组合)

以下是我的发现:

import scipy
import scipy.interpolate
import numpy as np
import pandas as pd

x=np.array([0,10,25,60,100])       #Index
y=np.array([1000,1200,1400,1600])  #Column

data=np.array([[60,54,33,0],
              [50,46,10,0],
              [42,32,5,0],
              [30,30,2,0],
              [10,10,0,0]])

Table_to_Interpolate=pd.DataFrame(data,index=x,columns=y)
sp=scipy.interpolate.RectBivariateSpline(x,y,data, kx=1, ky=1, s=0)
scipy.interpolate.RectBivariateSpline(x,y,data, kx=1, ky=1, s=0)
Input_Xs=12, 44, 69
Input_Ys=1150, 1326, 1416

Results=pd.DataFrame(sp(Input_Xs, Input_Ys), index=Input_Xs, columns=Input_Ys,)

它并不完美,但它是我能找到的最好的。

Uhm,示例I/O?您的链接丢失了我添加了带有示例的链接。也许我会澄清为什么我需要这样一张桌子。我有一个扁平的样品(板),我在多个点上测量了它的厚度。结果汇总在表中,其中索引是位置,表中的值是厚度。我想从那张表中得到厚度,但不仅仅是从测量的点,我想通过插值的方法得到测量点之间的厚度,这并不是我想要的。我需要在2D表格上工作,并从中获得结果。从表中,我只能得到特定列和行的结果,我想从“行和列之间”的任意位置插入结果。下面是如何在Excel中执行此操作的示例: