pandas学习,计算每行中两个经纬度点之间的距离,并添加到每行的末尾

继上一篇,将两个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)
  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值