#Python实例 计算外卖配送距离(基于百度API接口)---第二篇

python,实例,计算,外卖,配送,距离,基于,百度,api,接口,第二篇 · 浏览次数 : 65

小编点评

```python import pandas as pd import getDistance # 1.1路径设置并读取目标文件 order_path = r"\E:\\360MoveData\\Users\\B\\Desktop/订单距离测算.xlsx" df = pd.read_excel(order_path) # 1.2定义函数算出距离,并赋值给新列 def calc_distance(row): start = "{}".format(row["用户地址纬经度"]) end = "{}".format(row["门店地址纬经度"]) return getDistance(start, end) # 1.3使用pandas.DataFrame.apply方法对表格应用这个函数,指定axis=1表示按行操作 df["distance"] = df.apply(calc_distance, axis=1) # 2.打印结果 print(df) ```

正文

在上一篇中,我们计算了两点的距离(链接为上篇文章),但是具体业务中,往往会存在一次性计算多组,上百甚至上千的距离。

所以我们需要利用python函数,批量去处理和传参,批量计算距离。前面的操作去第一篇文章看,这里只介绍批量处理部分。

百度地图API单天是有限制的,这个可以在官网查看限制条数,如果是个人项目几千条左右的可以直接跑,更多可能需要购买商用API服务,或者改算大圆直线距离,在第一篇有讲。

第一步:思路整理

首先,我们需要定义一个函数,比如叫做calc_distance,它接受一行数据作为输入,然后从中提取出门店经纬度和订单经纬度,然后调用之前定义的getDistance函数,返回距离值。

然后,你需要用pandas.DataFrame.apply方法来对表格应用这个函数,指定axis=1表示按行操作,得到一个Series对象,它包含了每一行的距离值。

最后,我们需要把这个Series对象赋值给表格的新列,比如叫做distance。

第二步:代码实现

1.1路径设置并读取目标文件

order_path = r"E:\360MoveData\Users\B\Desktop/订单距离测算.xlsx"
df = pd.read_excel(order_path)

1.2定义函数算出距离,并赋值给新列

def calc_distance(row):
    start = "{}".format(row["用户地址纬经度"])
    end = "{}".format(row["门店纬经度"])
    return getDistance(start, end) # 注意这里要传入两个参数
distance = df.apply(calc_distance, axis=1) # 注意这里要传入calc_distance函数,而不是getDistance函数
df["distance"]=distance

与#Python实例 计算外卖配送距离(基于百度API接口)---第二篇相似的内容:

#Python实例 计算外卖配送距离(基于百度API接口)---第二篇

https://www.cnblogs.com/simone331/p/17218019.html 在上一篇中,我们计算了两点的距离(链接为上篇文章),但是具体业务中,往往会存在一次性计算多组,上百甚至上千的距离。 所以我们需要利用python函数,批量去处理和传参,批量计算距离。前面的操作去第一篇

#Python实例 计算外卖配送距离(基于经纬度的导航及直线距离)

一:X-MIND 二:计算两点经纬度之间的距离 经纬度是利用三维球面空间来描述地球上一个位置的坐标系统,每个经纬度坐标由经度 lng 和纬度 lat 两个分量组成。经纬度的有效范围为经度-180度到+180度,纬度大约-90度到+90度。 三:Geopy库,计算两点直线距离 如果遇到测算直线距离可以

Python 实现 定义个矩形类,有长和宽两个实例属性,还有一个计算面积的方法

思路:'''1.定义矩形类2.定义属性 属性分:类属性和实例属性实例属性==》self.属性 》self是一个参数在一个方法中==》_init_方法 3.定义方法 def Area(self): s=self.length*self.width ''' class Square: def __ini

数值计算:前向和反向自动微分(Python实现)

自动微分技术(称为“automatic differentiation, autodiff”)是介于符号微分和数值微分的一种技术,它是在计算效率和计算精度之间的一种折衷。自动微分不受任何离散化算法误差的约束,它充分利用了微分的链式法则和其他关于导数的性质来准确地计算它们。我们可以选择定义一种新的数据类型来存储[u,u′]和[v,v′]这类数对。我们可以在这些数对上定义一种代数运算,这些代数运算编码了一些经典的操作。

Python读取大量Excel文件并跨文件批量计算平均值

本文介绍基于Python语言,实现对多个不同Excel文件进行数据读取与平均值计算的方法~

Python常见面试题016. 请实现如下功能|谈谈你对闭包的理解

016. 请实现如下功能|谈谈你对闭包的理解 摘自<流畅的python> 第七章 函数装饰器和闭包 实现一个函数(可以不是函数)avg,计算不断增加的系列值的平均值,效果如下 def avg(...): pass avg(10) =>返回10 avg(20) =>返回10+20的平均值15 avg(

如何用python计算不定积分

本文详细介绍了如何用Python计算不定积分的方法,重点SymPy是一个用于符号数学的Python库,支持许多类型的数学对象,包括整数、有理数、实数、复数、函数、极限、积分、微分、方程、几何等,同时本文也介绍了多项式函数、指数函数和三角函数、换元积分、有理函数的不定积分的方法。

Python gdal读取MODIS遥感影像并结合质量控制QC波段掩膜数据

本文介绍基于Python中GDAL模块,实现MODIS遥感影像数据的读取、计算,并基于质量控制QC波段进行图像掩膜的方法~

Python:对程序做性能分析及计时统计

如果只是想简单地对整个程序做计算统计,通常使用UNIX下的time命令就足够了。由于我用的是Mac系统,和Linux系统的输出可能有不同,不过关键都是这三个时间:user: 运行用户态代码所花费的时间,也即CPU实际用于执行该进程的时间,其他进程和进程阻塞的时间不计入此数字;system: 在内核中执行系统调用(如I/O调用)所花费的CPU时间。total(Linux下应该是real):即挂钟时间

聊聊神经网络的基础知识

来自《深度学习入门:基于Python的理论与实现》 张量 Numpy、TensorFlow、Pytorch等框架主要是为了计算张量或是基于张量计算。 标量:0阶张量;12,4,3, 向量:一阶张量;[12,4,3] 矩阵:二阶张量;[ [12,4,3], [11,2,3] ] 多阶张量:多维数组;