「Python实用秘技15」pandas中基于范围条件进行表连接
本文完整示例代码及文件已上传至我的
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
加速运算:

更多有关pyjanitor
的使用技巧请移步https://pyjanitor-devs.github.io/pyjanitor/
阅读更多。
本期分享结束,咱们下回见~👋
作者:Feffery
出处:https://www.cnblogs.com/feffery/p/17537401.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-07-08 (数据科学学习手札140)详解geopandas中基于pyogrio的矢量读写引擎