pandas中基于范围条件进行表连接

简介: pandas中基于范围条件进行表连接

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

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

640.png

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

640.png

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

640.png

相关文章
|
4月前
|
机器学习/深度学习 Python
pandas将dataframe列中的list转换为多列
在应用机器学习的过程中,很大一部分工作都是在做数据的处理,一个非常常见的场景就是将一个list序列的特征数据拆成多个单独的特征数据。
95 0
|
4月前
|
SQL 数据采集 数据可视化
使用Python Pandas实现两表对应列相加(即使表头不同)
使用Python Pandas实现两表对应列相加(即使表头不同)
137 3
|
19天前
|
索引 Python
Pandas 中的重新索引
【8月更文挑战第30天】
32 1
|
11月前
|
Python
pandas - 数据排序
pandas - 数据排序
49 0
|
12月前
|
Python
条件选取数据dataframe
在pandas中,可以使用`merge`函数将两个dataframe合并在一起,然后使用`query`函数根据指定的条件选取数据。以下是一个例子:
86 0
|
Python
【一日一技】超简单的Pandas数据筛选方法
【一日一技】超简单的Pandas数据筛选方法
130 0
Pandas groupby分组后求各组行数
Pandas groupby分组后求各组行数
Pandas groupby分组后求各组行数
|
索引 Python
pandas 按某一列A排序,按B和C两列分组,选择分组后A列值最大的行
pandas 按某一列A排序,按B和C两列分组,选择分组后A列值最大的行
|
Python
Pandas窗口函数
Pandas窗口函数
98 0
|
关系型数据库 MySQL 索引
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(三)
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(三)
DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(三)