python在有条件地选择键时合并数据帧

python在有条件地选择键时合并数据帧,python,join,pandas,merge,dataframe,Python,Join,Pandas,Merge,Dataframe,我的问题的简化问题是,我有一个查找表,在id\u a下有许多缺失的值: first last id_A A1 B1 A1 B1 C2 A3 B3 C4 A4 B4 我想将查找表与另一个表table B合并,该表在id\u B下也缺少值: fName lName id_B information_col A1 B1 C1 104 A1 B1

我的问题的简化问题是,我有一个
查找表
,在
id\u a
下有许多缺失的值:

first   last    id_A
A1      B1
A1      B1      C2
A3      B3      C4   
A4      B4
我想将查找表与另一个表
table B
合并,该表在
id\u B
下也缺少值:

fName   lName   id_B    information_col
A1      B1      C1        104
A1      B1                29
A3      B3      C4        123
A4      B4                23
如果可能的话,我想在
left\u on='id\u A',right\u on='id\u B'
上合并这两个数据帧。对于那些缺少
id\u A
id\u B
的数据帧,我想合并
left\u on=['first','last'],right\u on=['fName','lName']
上的两个数据帧。整体结果将类似于左连接,因此我只保留具有查询表中显示的键的数据

我可以通过分别合并
id\u A
第一个和最后一个
来实现我的目标,然后将两个合并的数据帧附加在一起,这是没有效率的。我相信有更简单的方法,我想听听你的建议,谢谢

p.s.
first
/
fName
代表名字,
last
/
lName
代表姓氏

所需的输出将是:

first   last    id_A    information_col
A1      B1                  104
A1      B1      C2          29
A3      B3      C4          123
A4      B4                  23

请发布所需合并df的样子,我有点理解,但您需要发布此内容,以便没有歧义。我假设这是
pandas
?如果是这样,请在EdChum处大量更新标记。是的,它是熊猫。我已经为我的示例添加了所需的输出,并添加了标签
pandas
。数据是否来自RDMS数据库?如果是这样,考虑使用SQL作为引擎,优化器效率更高,并且可以处理许多类型的连接(内部、外部、左/右、交叉)。然后,将结果导入Python。谢谢@Parfait。数据来自从web下载的逗号分隔的txt文件,但我想我会接受您的建议,使用多个连接来获得最终结果。