이 모두/우 단지/값이 남아 있는지 여부를 알려줄 수있는 열을 추가합니다 :
In [2]:
A = pd.DataFrame({'x':np.arange(5)})
B = pd.DataFrame({'x':np.arange(3,8)})
print(A)
print(B)
x
0 0
1 1
2 2
3 3
4 4
x
0 3
1 4
2 5
3 6
4 7
In [3]:
pd.merge(A,B, how='outer', indicator=True)
Out[3]:
x _merge
0 0.0 left_only
1 1.0 left_only
2 2.0 left_only
3 3.0 both
4 4.0 both
5 5.0 right_only
6 6.0 right_only
7 7.0 right_only
그런 결과가에 DF 병합 필터링 할 수 있습니다 _merge
COL :
In [4]:
merged = pd.merge(A,B, how='outer', indicator=True)
merged[merged['_merge'] == 'left_only']
Out[4]:
x _merge
0 0.0 left_only
1 1.0 left_only
2 2.0 left_only
또한 B의 값을하지 찾기 위해 마스크를
isin
를 사용하여 부정 할 수
:
In [5]:
A[~A['x'].isin(B['x'])]
Out[5]:
x
0 0
1 1
2 2
A만의 고유 한 값을 보려면 isin (B [ 'X'])'를 쓰고 반대의 경우는 반대로 – EdChum
또한'pd.merge '_X', indicator = True, how = 'outer')'이 작동하면'_merge' col이 추가되고 left_only, right_only라는 값을 갖게됩니다 (예 : A, B, on = [ 'X' 왼쪽/오른쪽 만 – EdChum