Python 检查坐标间隔中是否存在值

Python 检查坐标间隔中是否存在值,python,pandas,Python,Pandas,我有一个包含五列的熊猫数据框架:x边界、y边界和一个float属性,我们称之为pmin。诸如此类: A = pd.DataFrame( { 'xmin':[0,0,0,0,0,1,1,2,2], 'xmax':[1,1,1,1,1,2,2,3,3], 'ymin':[0,1,2,3,4,2,3,1,3], 'ymax':[1,2,3,4,5,3,4,2,4], 'pmin':[12,23,54,48,31,4

我有一个包含五列的熊猫数据框架:x边界、y边界和一个float属性,我们称之为pmin。诸如此类:

A = pd.DataFrame(
    {
        'xmin':[0,0,0,0,0,1,1,2,2],
        'xmax':[1,1,1,1,1,2,2,3,3],
        'ymin':[0,1,2,3,4,2,3,1,3],
        'ymax':[1,2,3,4,5,3,4,2,4],
        'pmin':[12,23,54,48,31,42,20,13,8]
    }
)
B数据帧(或numpy数组)将包含(x,y,p)三元组。 我需要检查这些值是否与A中的值匹配,首先不考虑pmin,然后考虑条件(p 由于真实的A有数万行,而B可能有数十万行,所以遍历行是不可行的。另外,x和y值没有顺序(它们是一条复线的坐标)

有什么有效的方法可以实现这一点吗?

我想你想要的是:

B = (.3, 1.8, 28)
m = ((A['xmin']<=B[0])&(A['xmax']>=B[0]))&((A['ymin']<=B[1])&(A['ymax']>=B[1]))
np.any(m), B[2]<A[m]['pmin'].iloc[0] if np.any(m) else False
B=(.3,1.8,28)
m=((A['xmin']=B[0])和((A['ymin']=B[1]))

np.any(m),B[2]因此基本上m是正确单元的掩码,然后它在最后一行执行pmin检查。我还没有完整的数据,但它在样本上非常有效。我不知道np.any,handy:)非常感谢!我不清楚你的预期结果。介意发布结果“df”吗?我期望的是一个数据帧或任何其他数据结构,行数与B一样多,两列带有布尔值,对应于我介绍的两种情况。B=[(.3,1.8,28),(.3,1.8,21),(1.4,8,p)](其中p是任何正数)应该返回一个3x2(3是B的0轴的维度)数据结构:[[True,False],[True,True],[True,True]]。