[英]Pandas merging with condition on columns
问候大家,
有谁知道如何使用pandas根据特定行为加入两个数据帧,请使用 pandas 没有其他库。
像df1 inner join df2 where df1.t < df2.t..
在 sql 中进行操作,它带有 Python 的标准库。
from sqlite3 import sqlite3
import pandas
# define your dataframes here
df1 = ...
df2 = ...
# load the dataframes to memory
sql_ptr = sqlite3.connect(':memory:')
df1.to_sql('df1', sql_ptr)
df2.to_sql('df2', sql_ptr)
# execute the query
df3 = pd.read_sql_query("select * from df1 inner join df2 on <insert columns to join on> where df1.ts < df2.ts", sql_ptr)
请记住,此查询将执行两个不同的步骤:
关系代数中的内连接是两个集合之间的交集 ==> 列之间没有内连接这样的东西(除了隐含的相等条件)
例如,这个查询"select * from df1 inner join df2 on df1.ts = df2.ts where df1.ts < df2.ts"
将产生一个空视图,因为内部连接会在表 df1 和 df2 之间找到一个空的交集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.