각각 m 및 n 행이있는 트랜잭션의 양면을 나타내는 두 개의 데이터 프레임 (A 및 B)이 있습니다. 이러한 거래를 고유하게 식별하는 몇 가지 주요 열이 있습니다. 이 키 열이 두 열에 대해 동일하도록 row_in_A 및 row_in_B를 찾아야하며 나머지 열은 중요하지 않습니다. 그런 다음 각 dfs에서 이러한 행을 제거해야합니다.
전에:
안에:
Seller | Buyer | Side A
----------------------
X | Y | True
C | D | True
B에서 :
Seller | Buyer | Side B
----------------------
X | Y | True
키 열이 판매자와 구매자 뿐이라고 가정하면 이러한 행은 일치해야하며 A와 B에서 삭제해야합니다. 열은 두 dfs에 중복 항목을 포함 할 수 있습니다.
후:
Seller | Buyer | Side A
----------------------
C | D | True
어떻게해야합니까?
만들기 MultiIndex
에서 Seller
와 Buyer
열은 후, 사용 MultiIndex.isin
, 부울 마스크를 만들 행을 필터링이 마스크를 사용하여 :
i1 = pd.MultiIndex.from_arrays([df1['Seller'], df1['Buyer']])
i2 = pd.MultiIndex.from_arrays([df2['Seller'], df2['Buyer']])
df1, df2 = df1[~i1.isin(i2)], df2[~i2.isin(i1)]
비슷한 아이디어 DataFrame.set_index
:
i1 = df1.set_index(['Seller', 'Buyer']).index
i2 = df2.set_index(['Seller', 'Buyer']).index
df1, df2 = df1[~i1.isin(i2)], df2[~i2.isin(i1)]
결과:
print(df1)
Seller Buyer Side A
1 C D True
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다