키 열 값 팬더를 기반으로 한 데이터 프레임의 행을 다른 데이터 프레임에 일치시킵니다.

아르 준 스 리니 바산

각각 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

어떻게해야합니까?

Shubham Sharma

만들기 MultiIndex에서 SellerBuyer열은 후, 사용 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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관