温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python中怎么利用pandas实现二分法查找

发布时间:2021-07-05 15:56:48 来源:亿速云 阅读:305 作者:Leah 栏目:大数据

今天就跟大家聊聊有关Python中怎么利用pandas实现二分法查找,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

Excel解决方法

首先要知道每个人取货之前已经累计被拿了多少数量:

Python中怎么利用pandas实现二分法查找

  • 通过简单的固定地址,直接使用 sum 函数即可

  • 第一行的记录比较特殊,这里简单处理,直接手工填充0(复杂处理就会sum公式变复杂一点)

同样道理,处理批次表:

Python中怎么利用pandas实现二分法查找

  • 注意把公式写在表的左方,方便后续处理(别跟我说 vlookup 配合数组公式可以右往左匹配,非常讨厌无关逻辑嵌套一起的东西)

现在可以直接使用 vlookup 了:

Python中怎么利用pandas实现二分法查找

  • 注意最后一个参数是1,模糊查找

  • 这里有个前提是,右表的数值列必须为升序,否则结果可能出乎意料


 

pandas解决方法

pandas 中的做法基本上每一句代码就对应 Excel 中的一个操作:

Python中怎么利用pandas实现二分法查找

  • 行1、2:加载数据,不多说

  • 行4、5:对2个表排序。这其实是很关键一步,上面 Excel 操作中省去了这2个操作

  • 行7、8:对应 Excel 中的求出"累计列"的操作

  • 行10:pd.cut 相当于模糊查找的 vlookup 。但是这方法比 vlookup 麻烦,每个区间的分割点必需比区间要多1个数量(这符合数据分段逻辑,但不方便数据表操作)

  • 所以在参数 bins 里面,我们特意添加一个比较大的数 1000 上去

  • 参数 right=False ,是让边界值归左边界处理。比如数量50,是属于批次1,而不是批次2


针对上述说的 pd.cut 的缺点,我们可以自定义一个函数,简化操作:

Python中怎么利用pandas实现二分法查找

  • 把数据源(参数 x)的总和添加到分段点(参数 bins)中即可

  • 为了让其行为默认与 Excel vlookup 一致,把参数 right 默认值设置为 False

现在调用就清晰很多了:

Python中怎么利用pandas实现二分法查找


看完上述内容,你们对Python中怎么利用pandas实现二分法查找有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI