Python 如何基于两列将重复行从一个数据帧添加到另一个数据帧?
如何将Python 如何基于两列将重复行从一个数据帧添加到另一个数据帧?,python,pandas,Python,Pandas,如何将tbl_2中的重复行附加到tbl_1中,如下所示: tbl_1: +---+---+---+ | a | b | c | +---+---+---+ | 1 | 2 | x | | 3 | 4 | y | | 5 | 6 | z | +---+---+---+ tbl_2: +---+---+---+ | a | b | c | +---+---+---+ | 1 | 1 | a | | 3 | 4 | b | | 5 | 6 | c | +---+---+---+ 我试过使用du
tbl_2
中的重复行附加到tbl_1
中,如下所示:
tbl_1:
+---+---+---+
| a | b | c |
+---+---+---+
| 1 | 2 | x |
| 3 | 4 | y |
| 5 | 6 | z |
+---+---+---+
tbl_2:
+---+---+---+
| a | b | c |
+---+---+---+
| 1 | 1 | a |
| 3 | 4 | b |
| 5 | 6 | c |
+---+---+---+
我试过使用
duplicated()
,但我不知道如何从一个数据帧内的比较转到数据帧之间的比较…您可以使用tbl_1
的pd.concat
,然后从tbl_2
中选择两列中存在的tbl_1
行(我假设a和b)使用内部合并:
+---+---+---+
| a | b | c |
+---+---+---+
| 1 | 2 | x |
| 3 | 4 | y |
| 5 | 6 | z |
| 3 | 4 | b |
| 5 | 6 | c |
+---+---+---+
pd.concat([df1,df2],轴=0)
print (pd.concat([tbl_1,
tbl_1[['a','b']].merge(tbl_2, how='inner')]))
a b c
0 1 2 x
1 3 4 y
2 5 6 z
0 3 4 b
1 5 6 c