原始excel文件中的数据第一列为编号第二列第一个点的经度第三列为第一个点的纬度第四列为第二个点的经度第五列为第二个点的纬度生成的距离作为结果保存在第六列。请根据这个信息再次优化程序
根据这个信息,可以使用以下代码来计算两个点之间的距离并将结果保存在第六列:
import pandas as pd
from math import radians, sin, cos, sqrt, atan2
# 读取excel文件
data = pd.read_excel('data.xlsx')
# 计算每个点之间的距离
def calculate_distance(row):
# 将经纬度转换为弧度
lat1, lon1, lat2, lon2 = map(radians, [row['lat1'], row['lon1'], row['lat2'], row['lon2']])
# Haversine公式计算距离
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * atan2(sqrt(a), sqrt(1-a))
distance = 6371 * c * 1000 # 将距离转换为单位为米
return distance
# 将计算结果保存在第六列
data['distance'] = data.apply(calculate_distance, axis=1)
# 将结果保存为新的excel文件
data.to_excel('result.xlsx', index=False)
这个代码使用了Haversine公式来计算两个点之间的距离,并将结果保存在第六列中。同时,使用了pandas库来读取原始excel文件并将结果保存为新的excel文件。
原文地址: https://www.cveoy.top/t/topic/bw0L 著作权归作者所有。请勿转载和采集!