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 中应该如何做到这一点?
你可以这样做:
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)