logo

Pandas의 다양한 조인 유형

Pandas 모듈에는 조인, 연결, 삭제, 추가 등과 같은 데이터프레임에서 다양한 작업을 수행하는 다양한 기능이 포함되어 있습니다. 이 기사에서는 Pandas에서 수행할 수 있는 다양한 유형의 조인 작업에 대해 논의하겠습니다. 데이터프레임. 조인에는 5가지 유형이 있습니다. 팬더 .

  • 내부 조인
  • 왼쪽 외부 조인
  • 오른쪽 외부 조인
  • 완전 외부 조인 또는 단순히 외부 조인
  • 인덱스 조인

다양한 유형의 조인을 이해하기 위해 먼저 두 개의 DataFrame, 즉 그리고 .



데이터프레임 a:

파이썬3








# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # printing the dataframe> a>

>

>

산출:

데이터프레임 b:

파이썬3




# importing pandas> import> pandas as pd> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # printing the dataframe> b>

>

>

산출:

Pandas의 조인 유형

우리는 다양한 유형의 조인을 이해하기 위해 이 두 데이터프레임을 사용할 것입니다.

팬더 내부 조인

내부 조인은 작업하게 될 가장 일반적인 조인 유형입니다. 공통 특성을 가진 행만 포함된 데이터프레임을 반환합니다. 이는 두 세트의 교집합과 유사합니다.

팬더 내부 조인

예:

파이썬3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # inner join> df>=> pd.merge(a, b, on>=>'id'>, how>=>'inner'>)> # display dataframe> df>

안드로이드 앱 잠그기
>

>

산출:

팬더 왼쪽 조인

왼쪽 외부 조인을 사용하면 첫 번째 데이터 프레임의 키를 두 번째 데이터 프레임에서 찾을 수 있는지 여부에 관계없이 첫 번째 데이터 프레임의 모든 레코드가 표시됩니다. 반면 두 번째 데이터 프레임의 경우 첫 번째 데이터 프레임에서 찾을 수 있는 두 번째 데이터 프레임의 키가 있는 레코드만 표시됩니다.

왼쪽 조인 예:

파이썬3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # left outer join> df>=> pd.merge(a, b, on>=>'id'>, how>=>'left'>)> # display dataframe> df>

>

>

자바 숫자를 문자열로

산출:

팬더 오른쪽 외부 조인

오른쪽 조인의 경우 두 번째 데이터 프레임의 모든 레코드가 표시됩니다. 그러나 두 번째 데이터 프레임에서 찾을 수 있는 첫 번째 데이터 프레임의 키가 있는 레코드만 표시됩니다.

Pandas 오른쪽 외부 조인

예:

파이썬3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # right outer join> df>=> pd.merge(a, b, on>=>'id'>, how>=>'right'>)> # display dataframe> df>

>

>

산출:

팬더 완전 외부 조인

완전 외부 조인은 왼쪽 데이터 프레임의 모든 행과 오른쪽 데이터 프레임의 모든 행을 반환하고 가능한 경우 행을 다른 곳에 있는 NaN과 일치시킵니다. 그러나 데이터프레임이 완료되면 동일한 출력을 얻습니다.

Pandas 전체 외부 조인

예:

파이썬3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # full outer join> df>=> pd.merge(a, b, on>=>'id'>, how>=>'outer'>)> # display dataframe> df>

>

>

산출:

Pandas 인덱스 조인

인덱스의 데이터프레임을 병합하려면 왼쪽_색인 그리고 right_index 인수를 True로 지정합니다. 즉, 두 데이터프레임이 모두 기본 Inner Join을 사용하여 인덱스에 병합됩니다.

파이썬3




# importing pandas> import> pandas as pd> # Creating dataframe a> a>=> pd.DataFrame()> # Creating Dictionary> d>=> {>'id'>: [>1>,>2>,>10>,>12>],> >'val1'>: [>'a'>,>'b'>,>'c'>,>'d'>]}> a>=> pd.DataFrame(d)> # Creating dataframe b> b>=> pd.DataFrame()> # Creating dictionary> d>=> {>'id'>: [>1>,>2>,>9>,>8>],> >'val1'>: [>'p'>,>'q'>,>'r'>,>'s'>]}> b>=> pd.DataFrame(d)> # index join> df>=> pd.merge(a, b, left_index>=>True>, right_index>=>True>)> # display dataframe> df>

>

>

산출: