这是我的系列文章「Python实用秘技」的第15期,本系列立足于笔者日常工作中使用Python积累的心得体会,每一期为大家带来一个几分钟内就可学会的简单小技巧。

  作为系列第15期,我们即将学习的是:在pandas中基于范围条件进行表连接。

  表连接是我们日常开展数据分析过程中很常见的操作,在pandas中基于join()merge()等方法,可以根据左右表连接依赖字段之间对应值是否相等,来实现常规的表连接。

  但在有些情况下,我们可能需要基于一些“特殊”的条件匹配,来完成左右表之间的表连接操作,譬如对于下面的示例数据框demo_leftdemo_right

  假如我们需要基于demo_leftleft_id等于demo_rightright_id,且demo_leftdatetimedemo_rightdatetime之间相差不超过7天,这样的条件来进行表连接,通常的做法是先根据left_idright_id进行连接,再在初步连接的结果表中基于left_idright_id进行分组筛选运算,过滤掉时间差大于7天的记录:

  而除了上面的方式以外,我们还可以基于之前的文章中给大家介绍过的pandas的功能拓展库pyjanitor中的条件连接方法,直接基于范围比较进行连接,且该方式还支持numba加速运算:

  更多有关pyjanitor的使用技巧请移步https://pyjanitor-devs.github.io/pyjanitor/阅读更多。


  本期分享结束,咱们下回见~👋

07-17 11:30