我正在使用 Pandas 数据框,我试图从每个标识符的每个点的经度和纬度获取距离。这是当前的数据框: Identifier num_pts latitude longitude0 AL011851 3 28.0 -94.81 AL011851 3 28.0 -95.42 AL011851 3 28.1 -96.03 AL021851 2 22.2 -97.64 AL021851 2 12.0 -60.0我知道我必须使用Haversine 的距离公式,但我不确定如何使用我的数据合并它。import numpy as npdef haversine(lon1, lat1, lon2, lat2, earth_radius=6367): """ Calculate the great circle distance between two points on the earth (specified in decimal degrees) All args must be of equal length. """ lon1, lat1, lon2, lat2 = map(np.radians, [lon1, lat1, lon2, lat2]) dlon = lon2 - lon1 dlat = lat2 - lat1 a = np.sin(dlat/2.0)**2 + np.cos(lat1) * np.cos(lat2) * np.sin(dlon/2.0)**2 c = 2 * np.arcsin(np.sqrt(a)) km = earth_radius * c return km这应该是我在纸上仅使用纬度和经度计算的最终结果: Identifier num_pts latitude longitude distance0 AL011851 3 28.0 -94.8 NaN1 AL011851 3 28.0 -95.4 58.8705322 AL011851 3 28.1 -96.0 58.8705323 AL021851 2 22.2 -97.64 AL021851 2 12.0 -60.0编辑:我需要计算 0 和 1 和 2 等连续点之间的距离,并且必须按标识符对其进行分组以确保这些点不来自不同的标识符,因此当有新标识符(如 AL021851)时,它会重置并且只计算该标识符中的点
添加回答
举报
0/150
提交
取消