Ich habe zwei Datensätze, die ich brauche auf einem Abstand zwischen zwei Koordinaten Zustand miteinander zu verbinden. Ich habe eine Funktion erstellt, die Haversines formula verwendet, um distance_km zu berechnen, aber in Leistungseinschränkungen für wie lange es dauert.zwei Datenrahmen auf geringste Abstand zwischen den Koordinaten Python
Datensatz 1:
building_id | lat | lng
-------------|-------|--------
1 | 32.11 | -71.22
2 | 32.44 | -72.25
3 | 31.75 | -71.36```
Datensatz 2:
building_id | lat | lng
------------|-------|--------
4 | 31.65 | -73.52
5 | 32.78 | -70.21
6 | 36.15 | -72.49
Jeder Datensatz verfügt über mehr als 10.000 Gebäude in ihnen, und ich möchte Daten-Set 2-Datensatz 1 passen, aber nur dann, wenn die Entfernung in km beträgt weniger als 0,0075.
ich zur Zeit durch jede Zeile des Datensatzes 1 am iterieren und alle lat lng Combos von Daten-Set 2 den Mindestabstand zu bestimmen aufzublicken
dataset_2_latlng_dict = dict(zip(dataset_2.lng,dataset_2.lat))
for index, row in dataset_1.iterrows():
lat = row['lat']
lng = row['lng']
all_dist = []
final_list = []
for key, value in dataset_2_latlng_dict.iteritems():
distance = utils.distance_km(key,value,lng,lat)
all_dist.extend([distance])
final_list = sorted(all_dist, key=float)
dataset_1['min_distance'] = final_list[0]
Haben Sie eine größere Datenmenge, die für den Test verwendet werden könnte? –