我有兩個CSV文件。其中一個包含City,Lat,Long,另一個包含City對,即City1,City2。我必須計算這些城市對之間的距離。如何匹配csv中的兩列?
City_pair.csv 1 csv文件
City1,City2
Mumbai,Bengaluru
Delhi,Mumbai
Bengaluru,Delhi
Lat_long.csv第二csv文件
City,Lat,Long
Mumbai,19.1195,72.8469
Bengaluru,13.0046,77.6351
Delhi,28.714,77.1673
爲此,我不得不拿起Lat Long網每個城市的距離爲lat_long.csv文件每次出現在city_pair.csv中,然後將其饋入osrm api。
現在我無法拿起對應於城市的經緯度。這是我已經嘗試過的:
def distance():
global latitude1,latitude2,longitude1,longitude2
with open('city_pair.csv') as fin1,\
open('lat_long.csv') as fin2:
reader1 = DictReader(fin1)
reader2 = DictReader(fin2)
for line2 in reader2:
outline = dict(line2)
fin1.seek(0) # resets the reader1 iterator
for line1 in reader1:
if line1['City1'] in line2['City'].lower():
latitude1 = line2['Lat']
longitude1 = line2['Long']
orig_coord= latitude1, longitude1
if line1['City2'] in line2['City'].lower():
latitude2 = line2['Lat']
longitude2 = line2['Long']
dest_coord = latitude2, longitude2
print latitude1,longitude1
url = "http://localhost:5000/viaroute?loc="+str(latitude1)+","+str(longitude1)+"&loc="+str(latitude2)+","+str(longitude2)
result= simplejson.load(urllib.urlopen(url))
driving_time = result['route_summary']['total_time']
driving_distance = result['route_summary']['total_distance']
print "Distance between"+line1['City1']+"to"+line1['City2']+ " = "+driving_distance
print "Travel Time between"+line1['City1']+"to"+line1['City2']+ " = "+driving_time
謝謝,建議。現在正在工作。 – Rahul 2014-11-05 08:20:54