连接两个具有OR条件的数据帧

时间:2019-03-14 15:20:10

标签: python pandas

有没有一种方法可以执行以下操作。所以我有两个数据框。

数据集A

Ticker ID
XX     1
AA     NaN
NaN    2
BB     NaN

数据集B

Tix  ID    NormDist
XX      1      .4
AA      NaN    .6
NaN     2      .9

我想在 Ticker 列或 ID 列上合并数据集。输出应如下所示:

Ticker ID     NormDist
XX     1      .4
AA     NaN    .6
NaN    2      .9
BB     NaN    NaN

我知道我可以做两个背靠背的合并

Data = pd.merge(A, B, left_on = ['ID'], right_on=['ID'], how='left')
Data = pd.merge(A, B, left_on = ['Ticker'], right_on=['Tix'], how='left')

但是有更聪明的方法吗?有点像SQL命令。

a.id = b.id OR 或a.Ticker = b.Tix

1 个答案:

答案 0 :(得分:3)

据我了解,您可以尝试进行内部合并的df.combine_first()

/Zl