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文件,但我想我会接受您的建议,使用多个连接来获得最终结果。