pandas实战------解决一道反常的pandas实现两表连接

需求背景

现在有两张表,A表结构如下

B表结构如下,区间表示产品重量在此区间的价格

要求是结合AB表,算出A表中每个产品的价格

解题思路

把AB表相连接肯定是通过相同的字段(地区代码)进行连接,但是如果只是普通的连接,已然找不到合适的区间。所以想到把运费区间多列变成多行单列,如下

然后我们在通过提取每个区间的最低值和最高值,判断重量所在的区间,最后提取出符合条件的值。

实战代码:

导入pandas并读取数据


使用stack函数将多列变成多行单列,为了保证地区代码和地区缩写这两个字段也跟着变化,我们想把它设置索引,stack后再变回来

连接两个表

判断重量是否在本区间内。提取出最小值和最大值,然后进行判断

最后只需把符合条件的筛选出来即可

posted @ 2021-03-26 10:01  littlemelon  阅读(348)  评论(0编辑  收藏  举报