在 python/pandas 中按行合并具有重叠数据的数据帧

use*_*884 4 python merge pandas

我有两个大数据框,需要按行合并。这两个数据帧可能有一些重叠的行。

例子:

data1
    key name               patent
    11  Alphagrep          112344
    12  Citrix             112345

data2
    Sr  name               patents
    11  Alphagrep          112344
    13  Taj                112322
Run Code Online (Sandbox Code Playgroud)

我想在 [Key,Sr] 和 [专利、专利] 上逐行合并这些数据帧

即:如果 row-data1[key]==row-data2[Sr] & row-data1[patent]==row-data2[patents],则合并或追加。

结果应该是:

data1 + data2
    key name               patent
    11  Alphagrep          112344
    12  Citrix             112345
    13  Taj                112322
Run Code Online (Sandbox Code Playgroud)

在 pandas 中应该如何做到这一点?

MYG*_*YGz 5

你可以这样做:

print data1, '\n', '\n', data2, '\n'
data2.columns = data1.columns.tolist()
data3 = pd.concat([data1, data2]).drop_duplicates()
print data3
Run Code Online (Sandbox Code Playgroud)

输出:

   key       name  patent
0   11  Alphagrep  112344
1   12     Citrix  112345 

   Sr       name  patents
0  11  Alphagrep   112344
1  13        Taj   112322 

   key       name  patent
0   11  Alphagrep  112344
1   12     Citrix  112345
1   13        Taj  112322
Run Code Online (Sandbox Code Playgroud)