Python 如何从nsmallest而不是.core.series.series获得价值
python还很陌生,所以欢迎您提供任何建议 我正在尝试将数据从多组坐标映射到一组坐标,并尝试使用双线性插值来实现这一点 我迭代了一组数据帧,试图为插值找到最近的邻居 由于我的网格在间距上可能不均匀,我首先按Y位置排序: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
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)没有?