两组数据作为例子,函数可直接使用。
import pandas as pd
from scipy.spatial.distance import cdist
data1 = {'Lat': pd.Series([50.6373473,50.63740441,50.63744285,50.63737839,50.6376054,50.6375896,50.6374239,50.6374404]),
'Lon': pd.Series([3.075029928,3.075068636,3.074951754,3.074913884,3.0750528,3.0751209,3.0750246,3.0749554]),
'Zone': pd.Series(['A','A','A','A','B','B','B','B'])}
data2 = {'Lat': pd.Series([50.6375524099,50.6375714407]),
'Lon': pd.Series([3.07507914474,3.07508201591])}
# 两组数据
def closest_point(point, points): # 根据哪列,在哪里找
""" Find closest point from a list of points. """
return points[cdist([point], points).argmin()] # 前者必须是个array
def match_value(df, col1, x, col2): # 哪里找,根据什么找,返回到哪里,找什么
""" Match value x