Pandas의 다양한 조인 유형

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>

산출:



마음에 드실지도 몰라요