pandas学习,计算每行中两个经纬度点之间的距离,并添加到每行的末尾
程序员文章站
2024-01-24 15:32:34
...
继上一篇,将两个csv文件通过关键字拼接,得到每行包含两个经纬度点的数据,即另一张结果csv表。这里我们将计算每行的经纬度点之间的距离,并添加到末尾。
先来看看我们即将处理的csv表。
这里我们还是要先定仪一个计算每行经纬度距离的函数。
import pandas as pd
from haversine import haversine
def cal_distance(row):
"""
计算两个经纬度点之间的距离
"""
long1 = row['long1']
lat1 = row['lat1']
long2 = row['long2']
lat2 = row['lat2']
g1 = (long1, lat1)
g2 = (long2, lat2)
ret = haversine(g1, g2) * 1000
result = "%.7f" % ret
return result
再使用apply()函数来计算每行的结果,并将得到的结果写入末尾。
apply()函数作用于整个DataFrame,自动遍历整个DataFrame,对每个元素运行指定的程序。
axis参数可以为0或者1,0:针对每一列数据运行指定的程序;1:针对每一行数据运行指定的程序
# 读取csv文件
data = pd.read_csv(r"F:\info_1_1.csv", float_precision='round_trip')
# 计算每行两个经纬度点,计算得出的距离
data['distance'] = data.apply(lambda data: cal_distance(data), axis=1)
print(data)
我们来看看结果是否如我们预期那样,计算出结果,并写入每行末尾。
当然我们也可以将得出的结果写入csv文件中。
data.to_csv(r"F:\info_1_2.csv", index=False)
上一篇: windows下使用AndroidStudio编译so
下一篇: CSS3:2D动画