有如下数据,订单表和商品价格表,进行数据合并,输出客户需要的效果。
数据样例:👇
订单表:
商品价格表:
最终效果:
01实现思路
目的是将订单数据和商品价格数据按照商品id和时间进行匹配,以确保每个订单都能找到正确的商品价格,最后输出每个订单的商品id和对应的单价。
02实现过程
-
导入pandas库:首先,代码通过
import pandas as pd
导入了pandas库,这是进行数据处理的常用库。 -
读取订单数据:使用
pd.read_excel
函数读取名为’20240902数据合并.xlsx’的Excel文件中名为’订单表’的工作表。这个函数将Excel表格加载到pandas的DataFrame对象中,方便后续处理。 -
排序订单数据:对读取的订单数据按照’订单时间’列进行排序,确保数据按照时间顺序排列。
-
读取商品价格数据:同样使用
pd.read_excel
函数读取同一个Excel文件中名为’商品价格表’的工作表。 -
排序商品价格数据:对商品价格数据按照’价格生效开始时间’列进行排序,这样每个商品的价格都是按照生效时间顺序排列的。
-
合并数据:使用
pd.merge_asof
函数将排序后的订单表和商品价格表按照’商品id’进行合并。这里的合并是基于时间的,即对于每个订单,它会找到商品价格表中价格生效开始时间最接近但不超过订单时间的价格记录。direction='backward'
参数指定了合并时查找价格记录的方向,即从当前记录向前查找最接近的记录。 -
删除不需要的列:合并后的数据中包含了一些不需要的列,如’价格生效结束时间’和’价格生效开始时间’,使用
drop
方法将这些列从DataFrame中删除。 -
按商品id排序:为了使最终的数据更加有序,代码再次对合并后的数据按照’商品id’进行排序。
-
打印结果:最后,代码使用
print
函数打印出合并后的数据中’订单时间’、'商品id’和’单价’这三列,以便查看合并后的结果。
03详细代码和注释
今天的分享就到这里了。有收获的小伙伴,记得点赞、收藏、分享哦!
如果您对本次分享的内容感兴趣的话,记得关注关注哦!不然下次找不到喽!
关注不迷路哦!“好记性不如烂笔头”,IT小本本 —— 记录IT知识,分享打工人真实的日常操作笔记!!!
😝有需要的小伙伴,可以V扫描下方二维码免费关注哦!