「Python实用秘技15」pandas中基于范围条件进行表连接
导读:本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第15期,本系列立足于笔者日常工作中使用...
本文完整示例代码及文件已上传至我的Github
仓库https://github.com/CNFeffery/PythonPracticalSkills
这是我的系列文章「Python实用秘技」的第15期,本系列立足于笔者日常工作中使用Python
积累的心得体会,每一期为大家带来一个几分钟内就可学会的简单小技巧。
作为系列第15期,我们即将学习的是:在pandas
中基于范围条件进行表连接。
表连接是我们日常开展数据分析过程中很常见的操作,在pandas
中基于join()
、merge()
等方法,可以根据左右表连接依赖字段之间对应值是否相等,来实现常规的表连接。
但在有些情况下,我们可能需要基于一些“特殊”的条件匹配,来完成左右表之间的表连接操作,譬如对于下面的示例数据框demo_left
和demo_right
:
假如我们需要基于demo_left
的left_id
等于demo_right
的right_id
,且demo_left
的datetime
与demo_right
的datetime
之间相差不超过7天,这样的条件来进行表连接,通常的做法是先根据left_id
和right_id
进行连接,再在初步连接的结果表中基于left_id
或right_id
进行分组筛选运算,过滤掉时间差大于7天的记录:
而除了上面的方式以外,我们还可以基于之前的文章中给大家介绍过的pandas
的功能拓展库pyjanitor
中的条件连接方法,直接基于范围比较进行连接,且该方式还支持numba
加速运算:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 「Python实用秘技15」pandas中基于范围条件进行表连接
本文地址: https://pptw.com/jishu/504586.html