随着网购的兴起,物流行业得到了飞速发展,许多电商公司投入大量的资源构建仓储物流体系。
物流行业会产生大量的数据,通过分析物流数据可以不断优化物流运营方案,提高效率以及用户体验。
现有物流数据如下:
-
需求:
- 合并汇总计算出相同路线 快递人员数量、运送物品总量、运送物品周转量、快件量、快件周转量
- 要求按照每个快递企业计算,计算时路线不分起点和终点,比如即“BJS-SZX”和“SZX-BJS”为同一条路线。
-
解析:
- 这个问题的难点在于不分起始点,这时该如何去计算。
- 思路:1、对每行起点与终点进行排序(顺序不重要)
-
2、对排完序的起点与终点进行合并(字符串的join)
-
3、进行分组聚合即可
-
示例代码如下:
data.groupby(data # 基于加工的数据进行分组
.apply(lambda x:set([x["城市起点"],x["城市终点"]]),axis=1) # 按统一顺序排布起始地点
.str.join("-") # 使用-进行拼接
)[['快递人员数量','运送物品总量','运送物品周转量','快件量','快件周转量']].sum()
结果如下:
这个内容用Mysql实现比较困难,但是用HiveQL 或者 SparkSQL 等实现起来同样也很方便。后续文章会有相应的介绍。