可能是一种更好的方法,但是由于这种方法已经存在了一段时间。
使用Pandas布尔值索引而不是np.where()过滤dfc数据帧
def findGrid(dfp): c = dfc[(dfp['x'] > dfc['minx']) & (dfp['x'] < dfc['maxx']) & (dfp['y'] > dfc['miny']) & (dfp['y'] < dfc['maxy'])].Code if len(c) == 0: return None else: return c.iat[0]
然后使用pandas apply()函数
dfp['GridCode'] = dfp.apply(findGrid,axis=1)
会产生这个
Id x y GridCode0 0 1.5 1.5 11 1 1.1 1.1 12 2 2.2 2.2 23 3 1.3 1.3 14 4 3.4 1.4 NaN5 5 2.0 1.5 NaN



