为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫中不同元素的成对距离

熊猫中不同元素的成对距离

慕容708150 2021-07-09 17:11:50
我有一个包含一些不同元素的数据框,由 ID 标识。对于它们中的每一个,都提供了 LAT、LON。下面提供了一个示例:ID       LAT        LON2426  0.351649  36.9219412451  0.351666  36.9219392457  0.351687  36.921966我想要一个由元组 (ID1,ID2) 和距离作为值标识的字典:{(2426,2451):d1, (2426,2457):d2, (2451,2457):d3}现在我正在使用以下代码计算每对之间的距离:distances = {}ids = to_network['ID'].valuesfor id_1 in ids:    ids = np.delete(ids, np.where(ids == id_1), axis=0)    for id_2 in ids:        distances[(id_1,id_2)] = compute_distance_m(to_network.loc[(to_network['ID'] == id_1),'LAT'].values[0],to_network.loc[(to_network['ID'] == id_1),'LON'].values[0],to_network.loc[(to_network['ID'] == id_2),'LAT'].values[0],to_network.loc[(to_network['ID'] == id_2),'LON'].values[0])# Result in mdef compute_distance_m(lat1,lon1,lat2,lon2):    coords_1 = (lat1, lon1)    coords_2 = (lat2, lon2)    return geopy.distance.vincenty(coords_1, coords_2).km*1000#returns{(2426, 2451): 1.9917619328904765, (2426, 2457): 5.083739036769186, (2451, 2457): 3.7473346626876483}问题是这段代码真的很慢,我在数据集中有十亿个实例,所以我正在寻找一个可以直接处理初始数据帧的更好的版本。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号