Data Analysis/pandas

Pandas 데이터 통합하기

Y0un9Ki 2024. 2. 19. 01:09

데이터를 통합하는 여러가지 메서드가 있다.

  • pd.concat() = 세로방향 통합
  • pd.join() = 가로방향 통합
  • pd.merge() = 조건에 따른 완전 통합

pd.concat()

  • pd.concat()은 첫번째 매개변수를 리스트 형태로 가져가게 된다.
  • 두번째 매개변수인 ignore_index=True는 인덱스를 번호를 순서에 맞게 다시 오름차순으로 정렬해준다. 원래는 df1, df2의 각각의 인덱스가 들어오게 되는데 ignore_index=True을 하면 인덱스가 초기화되고 순서대로 인덱스 번호가 정렬된다

pd.join()

  • join() 메서드는 칼럼방향 즉 가로방향으로 통합할 때 쉽게 쓸수있기에 좋다.
  • 합칠 데이터들의 인덱스 라벨이 같으면 문제없이 합쳐진다.
  • 합칠 데이터들의 인덱스 라벨이 다르면 합쳐는 지지만 결측치(NaN)값이 나온다.

pd.merge()

  • pd.join() 메서드는 컬럼에 중복이 있으면 합쳐지지 않는다. 즉 중복되는 열이 있으면 안된다. 그렇기에 이런경우 pd.merge()을 사용해서 합치면 더 편리하게 된다.
  • 아래와 같은 경우는 판매월이 중복이 되었기에 pd.join()을 썻을 때 오류가 발생!

  • pd.merge()안에는 여러 매개변수가 들어간다. 기존에 데이터에 합칠 데이터의 셋(이름)과 어떤 데이터를 기준으로 합칠 것인지에 대한 how=’’ 매개변수와 index를 결정할 on=’’이라는 매개변수가 들어간다.
  • 예를 들어 how=’left’가 들어가면 left에 맞추어서 다른 데이터 값들을 가지고 온다. 즉 left값은 온전히 다 나오게 되는것이고 다른 데이터 값들은 left에 맞추어 left행에 맞는 값이 있으면 나오고, 없으면 결측치(NaN) 값이 나오게 된다.