많은 실제 상황에서 우리가 사용하려는 데이터는 여러 파일로 제공됩니다. 데이터를 분석하기 위해 이러한 파일을 단일 DataFrame으로 결합해야 하는 경우가 종종 있습니다. Pandas는 조인/병합 유형 작업의 경우 인덱스 및 관계형 대수 기능에 대한 다양한 종류의 설정 논리와 Series 또는 DataFrame을 쉽게 결합할 수 있는 기능을 제공합니다. 또한 여러 테이블의 데이터를 결합할 수도 있습니다. 팬더 . 또한 pandas는 두 Series 또는 DataFrame을 비교하고 차이점을 요약하는 유틸리티도 제공합니다.
Pandas에서 DataFrame 연결
Pandas의 concat() 함수는 한 DataFrame의 열이나 행을 다른 DataFrame에 추가하는 데 사용됩니다. 그만큼 팬더 concat() 함수 다른 축에 있는 인덱스(있는 경우)의 선택적 설정 논리(합집합 또는 교차점)를 수행하는 동안 축을 따라 연결 작업을 수행하는 모든 힘든 작업을 수행합니다.
파이썬3
import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> frames>=> [df1, df2]> result>=> pd.concat(frames)> display(result)> |
>
>
산출:
id Name 0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>
Pandas에서 DataFrame 조인
DataFrame을 연결할 때 단순히 서로 추가했습니다. 즉, 수직으로 또는 나란히 쌓았습니다. DataFrame을 결합하는 또 다른 방법은 공통 값(공통 고유 ID)을 포함하는 각 데이터세트의 열을 사용하는 것입니다. 공통 필드를 사용하여 DataFrame을 결합하는 것을 조인이라고 합니다. 공통 값을 포함하는 열을 조인 키라고 합니다. 이러한 방식으로 DataFrame을 조인하는 것은 하나의 DataFrame이 다른 DataFrame에 포함하려는 추가 데이터가 포함된 조회 테이블일 때 유용합니다.
메모: 테이블을 조인하는 이 프로세스는 테이블을 조인하는 작업과 유사합니다. SQL 데이터베이스 .
여러 DataFrame을 함께 붙일 때 다른 축(연결되는 축 제외)을 처리하는 방법을 선택할 수 있습니다. 이 작업은 다음 두 가지 방법으로 수행할 수 있습니다.
- 이들 모두의 합집합을 취하여 Join='outer'로 합니다. 이는 정보 손실이 전혀 발생하지 않는 기본 옵션입니다.
- 교차로를 타고, 합류='내부'.
예: concat() 메서드를 사용한 두 DataFrame의 내부 조인
이 예에서는 두 개의 Panda DataFrame,df1>그리고df3>, 인덱스를 기반으로 내부 조인을 사용하여 연결됩니다. 'result'라는 결과 DataFrame에는 'id' 열이 있는 행만 포함됩니다.df1>'도시' 열과 일치합니다.df3>.
파이썬3
uml 다이어그램 자바
import> pandas as pd> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # the default behaviour is join='outer'> # inner join> result>=> pd.concat([df1, df3], axis>=>1>, join>=>'inner'>)> display(result)> |
>
>
산출:
id Name City Age 0 A01 ABC MUMBAI 12 1 A02 PQR PUNE 13 2 A03 DEF MUMBAI 14 3 A04 GHI DELHI 12>
Append() 함수를 사용하여 연결
concat()에 대한 유용한 단축키는 Series 및 DataFrame의 Append() 인스턴스 메서드입니다. 이 방법은 Pandas에서 여러 테이블의 데이터를 결합하는 데 사용할 수 있습니다. 이러한 방법은 실제로 concat보다 앞서 있습니다.
예 1: add() 메서드를 사용하여 두 DataFrame 결합
이 예에서는 두 개의 Pandas DataFrame,df1>그리고df2>는 다음을 사용하여 결합됩니다.append>메서드를 사용하면 'result'라는 새 DataFrame이 생성됩니다. 결과 DataFrame에는 두 항목의 모든 행이 포함됩니다.df1>그리고df2>, 연속 색인이 있습니다.
무순_맵 C++
파이썬3
import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> # append method> result>=> df1.append(df2)> display(result)> |
>
>
산출:
id Name 0 A01 ABC 1 A02 PQR 2 A03 DEF 3 A04 GHI 0 B05 XYZ 1 B06 TUV 2 B07 MNO 3 B08 JKL>
메모: Append()는 연결하기 위해 여러 개체를 사용할 수 있습니다.
예 2: Pandas에서 여러 테이블의 데이터 결합
이 예에서는 세 개의 Pandas DataFrame,df1>,df2>, 그리고df3>는 다음을 사용하여 함께 첨부됩니다.append>방법. 'result'라는 결과 DataFrame은 세 DataFrame의 모든 행을 결합하여 연속 인덱스를 유지합니다.
파이썬3
import> pandas as pd> # First DataFrame> df1>=> pd.DataFrame({>'id'>: [>'A01'>,>'A02'>,>'A03'>,>'A04'>],> >'Name'>: [>'ABC'>,>'PQR'>,>'DEF'>,>'GHI'>]})> # Second DataFrame> df2>=> pd.DataFrame({>'id'>: [>'B05'>,>'B06'>,>'B07'>,>'B08'>],> >'Name'>: [>'XYZ'>,>'TUV'>,>'MNO'>,>'JKL'>]})> df3>=> pd.DataFrame({>'City'>: [>'MUMBAI'>,>'PUNE'>,>'MUMBAI'>,>'DELHI'>],> >'Age'>: [>'12'>,>'13'>,>'14'>,>'12'>]})> # appending multiple DataFrame> result>=> df1.append([df2, df3])> display(result)> |
>
>
산출:
id Name City Age 0 A01 ABC NaN NaN 1 A02 PQR NaN NaN 2 A03 DEF NaN NaN 3 A04 GHI NaN NaN 0 B05 XYZ NaN NaN 1 B06 TUV NaN NaN 2 B07 MNO NaN NaN 3 B08 JKL NaN NaN 0 NaN NaN MUMBAI 12 1 NaN NaN PUNE 13 2 NaN NaN MUMBAI 14 3 NaN NaN DELHI 12>