【发布时间】:2020-09-23 17:08:06
【问题描述】:
我似乎找到了LEFT JOIN vs. LEFT OUTER JOIN in SQL Server 和https://chrisalbon.com/python/data_wrangling/pandas_join_merge_dataframe/,但还没有找到我要找的东西。我有两个 python 数据框:
A = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [1, 2, 3], [4, 5, 6]]),
columns=['a', 'b', 'c'])
a b c
0 1 2 3
1 4 5 6
2 1 2 3
3 4 5 6
B = pd.DataFrame(np.array([[7, 8, 9], [7, 8, 9], [3, 2, 1], [3, 2, 1]]),
columns=['c', 'b', 'a'])
c b a
0 7 8 9
1 7 8 9
2 3 2 1
3 3 2 1
其中值 [1, 2, 3] 在两者中重复,但 [4, 5, 6] 和 [9, 8, 7] 不重复。
我希望它具有来自一个数据帧但不加入另一个数据帧的所有值。例如:
A some_left_outer_join B = C
C = pd.DataFrame(np.array([ [4, 5, 6], [4, 5, 6]]),
columns=['a', 'b', 'c'])
并获得两个数据帧中不加入另一个数据帧的所有值。例如:
A some_outer_join B = D
D = pd.DataFrame(np.array([ [4, 5, 6], [4, 5, 6] , [9, 8, 7] , [9, 8, 7]]),
columns=['a', 'b', 'c'])
尝试
(pd.merge(left=A, right=B, how='left', on=['a', 'b', 'c']))
a b c
0 1 2 3
1 1 2 3
2 4 5 6
3 1 2 3
4 1 2 3
5 4 5 6
给我加入和未加入的元素。我只想要未加入的元素。请问,我怎样才能得到渴望的元素?
【问题讨论】: