我有两个大型数据框,我需要按行合并。这两个数据帧可能有几个重叠的行。
示例:
data1
key name patent
11 Alphagrep 112344
12 Citrix 112345
data2
Sr name patents
11 Alphagrep 112344
13 Taj 112322
我想在[Key,Sr]&上按行合并这些数据帧。 [专利,专利]
这是:如果row-data1 [key] == row-data2 [Sr]& row-data1 [专利] == row-data2 [专利],合并或者附加。
结果应该是:
data1 + data2
key name patent
11 Alphagrep 112344
12 Citrix 112345
13 Taj 112322
如何在熊猫中做到这一点?
答案 0 :(得分:3)
您可以这样做:
print data1, '\n', '\n', data2, '\n'
data2.columns = data1.columns.tolist()
data3 = pd.concat([data1, data2]).drop_duplicates()
print data3
输出:
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
答案 1 :(得分:1)
set_index
和combine_first
c1 = ['key', 'patent']
c2 = ['Sr', 'patents']
data1.set_index(c1) \
.combine_first(
data2.set_index(c2).rename_axis(c1)
).reset_index()
key patent name
0 11 112344 Alphagrep
1 12 112345 Citrix
2 13 112322 Taj