Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从nsmallest而不是.core.series.series获得价值_Python_Pandas - Fatal编程技术网

Python 如何从nsmallest而不是.core.series.series获得价值

Python 如何从nsmallest而不是.core.series.series获得价值,python,pandas,Python,Pandas,python还很陌生,所以欢迎您提供任何建议 我正在尝试将数据从多组坐标映射到一组坐标,并尝试使用双线性插值来实现这一点 我迭代了一组数据帧,试图为插值找到最近的邻居 由于我的网格在间距上可能不均匀,我首先按Y位置排序: for i in range(0, len(df_x['X'])): x_pos = df_x._get_value(i, 'X')#pull x coord y coord y_pos = df_y._get_value(i, 'Y') for n i

python还很陌生,所以欢迎您提供任何建议

我正在尝试将数据从多组坐标映射到一组坐标,并尝试使用双线性插值来实现这一点

我迭代了一组数据帧,试图为插值找到最近的邻居

由于我的网格在间距上可能不均匀,我首先按Y位置排序:

for i in range(0, len(df_x['X'])):
    x_pos = df_x._get_value(i, 'X')#pull x coord y coord
    y_pos = df_y._get_value(i, 'Y')
    for n in data_list:
        df = data_list[n] #
        d_y = abs(df['Y'] - y_pos) #array of distance from Y pos
        d_y.drop_duplicates() # remove duplicates
        
        nn_y1 = d_y.nsmallest(1) # finds closest row
        nn_y2 = d_y.nsmallest(2).iloc[-1] # finds next closest row
        
        print(type(nn_y1))

        d_x_y1 = df[df['DesignY'] == nn_y1] # creates list of X at closest row

我认为这应该为我提供最接近我的点的上下限

然而,当为X位置排序时,我得到一个错误

ValueError:只能比较标签相同的系列对象

我认为这是因为
nn_y1
的类型将

关于如何获得值而不是序列,有什么建议吗?我可以用一个元素创建一个数据框架,但这似乎有点不对劲?我尝试了一些
\u get\u value()
的组合,但没有成功。

返回:

“序列中的n个最小值,按递增顺序排序。”(键入)

在这种情况下,简单的方法是从
nsmallest(2)
解包,因为需要两个值:

nn_y1, nn_y2 = d_y.nsmallest(2)

要直接修改代码,需要从序列中获取第一个值:

nn_y1 = d_y.nsmallest(1).iloc[0]

或者
d_y.nsmalest(2)
可以与
iloc
一起使用两次,以获得两个值:

smallest = d_y.nsmallest(2)
nn_y1 = smallest.iloc[0]
nn_y2 = smallest.iloc[1]

这就解决了!你知道为什么这样做有效,但是最小的(1)没有?