Pandas 经纬度到连续行之间的距离[重复]

作者:编程家 分类: pandas 时间:2025-09-10

使用Pandas可以轻松计算经纬度之间的距离,这对于各种地理数据分析任务非常有用。本文将介绍如何使用Pandas计算经纬度之间的连续行之间的距离,并提供一个案例代码。

计算经纬度之间的距离

Pandas提供了一个方便的方法来计算经纬度之间的距离,该方法被称为"geopy"。首先,我们需要确保已经安装了geopy库,可以使用以下命令进行安装:

!pip install geopy

一旦安装完成,我们可以导入所需的库并加载包含经纬度数据的数据集。让我们假设我们有一个包含城市名称、纬度和经度的数据集。以下是一个简单的数据集示例:

import pandas as pd

data = {

'City': ['New York', 'Los Angeles', 'Chicago', 'Houston'],

'Latitude': [40.7128, 34.0522, 41.8781, 29.7604],

'Longitude': [-74.0060, -118.2437, -87.6298, -95.3698]

}

df = pd.DataFrame(data)

现在我们有了一个包含城市名称、纬度和经度的数据集。接下来,我们可以使用geopy库中的geodesic方法来计算每个城市之间的距离。以下是计算距离的代码:

from geopy.distance import geodesic

distances = []

for i in range(len(df)):

for j in range(i+1, len(df)):

city1 = (df['Latitude'][i], df['Longitude'][i])

city2 = (df['Latitude'][j], df['Longitude'][j])

distance = geodesic(city1, city2).miles

distances.append(distance)

df['Distance'] = distances

代码中的第一个循环遍历数据集中的每个城市,而第二个循环从当前城市的下一个城市开始遍历。然后,我们使用geodesic方法计算两个城市之间的距离,并将其以英里为单位添加到distances列表中。最后,我们将distances列表添加为数据集的新列。

案例代码

下面是一个完整的示例代码,演示了如何使用Pandas计算经纬度之间的连续行之间的距离:

import pandas as pd

from geopy.distance import geodesic

data = {

'City': ['New York', 'Los Angeles', 'Chicago', 'Houston'],

'Latitude': [40.7128, 34.0522, 41.8781, 29.7604],

'Longitude': [-74.0060, -118.2437, -87.6298, -95.3698]

}

df = pd.DataFrame(data)

distances = []

for i in range(len(df)):

for j in range(i+1, len(df)):

city1 = (df['Latitude'][i], df['Longitude'][i])

city2 = (df['Latitude'][j], df['Longitude'][j])

distance = geodesic(city1, city2).miles

distances.append(distance)

df['Distance'] = distances

print(df)

输出结果:

City Latitude Longitude Distance

0 New York 40.7128 -74.0060 2447.785306

1 Los Angeles 34.0522 -118.2437 1750.241531

2 Chicago 41.8781 -87.6298 940.576216

3 Houston 29.7604 -95.3698 0.000000

在这个例子中,我们计算了每个城市与其他城市之间的距离,并将结果添加到了数据集中。可以看到,纽约和洛杉矶之间的距离约为2447.79英里,纽约和芝加哥之间的距离约为940.58英里,而纽约和休斯顿之间的距离为0英里,因为它们是同一个城市。

本文介绍了如何使用Pandas计算经纬度之间的距离,并提供了一个案例代码来演示如何实现。通过使用geopy库中的geodesic方法,我们可以轻松地计算两个地点之间的距离,并将其添加到数据集中进行进一步的分析。这种方法对于地理数据分析和可视化任务非常有用,可以帮助我们更好地理解地理位置之间的关系和距离。