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> |
>
>
자바 숫자를 문자열로
산출:

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

예:
파이썬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과 일치시킵니다. 그러나 데이터프레임이 완료되면 동일한 출력을 얻습니다.

예:
파이썬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> |
>
>
산출:
