Python - Pandas 데이터 통합하기 (concat, join, merge)

2024. 1. 8. 11:53·Python/Python 기초문법
728x90

concat() : 행 추가

* pandas 1.4.0 버전 이후로 append 지원 안함. concat() 사용 권장

import pandas as pd
import numpy as np

df1 = pd.DataFrame({
    'Class1' : [95, 92, 98, 100],
    'Class2' : [91, 93, 97, 99]
})

df2 = pd.DataFrame({
    'Class1' : [87, 89],
    'Class2' :[85, 90]
})

result = pd.concat([df1, df2])
result

 

위 데이터에서 인덱스 정렬하고 싶을 때, ignore_index=True 추가

df3 = pd.DataFrame({
    'Class1' : [96, 83]
})

pd.concat([result, df3], ignore_index=True)


join() : 열 추가

df4 = pd.DataFrame({
    'Class3' : [93, 91, 95, 98]
})

df1.join(df4)

 

인덱스 라벨 추가하고 싶을 때, 인덱스 라벨 지정 후 index= index_label 추가

index_label = ['a','b','c','d'] # 인덱스 라벨 추가

df1a = pd.DataFrame({'Class1': [95, 92, 98, 100],
                    'Class2': [91, 93, 97, 99]}, index= index_label)
df4a = pd.DataFrame({'Class3': [93, 91, 95, 98]}, index=index_label)

df1a.join(df4a)

 

join할 때, 인덱스가 같아야 한다는 점 참고! 

다르면 NaN값 나옴

index_label = ['a','b','c','d']
df1a = pd.DataFrame({'Class1': [95, 92, 98, 100],
                    'Class2': [91, 93, 97, 99]})
df4a = pd.DataFrame({'Class3': [93, 91, 95, 98]}, index=index_label)

df1a.join(df4a)


merge() : 특정 열 기준 통합시 사용

join 사용 시 컬럼 열 중복으로 오류가 남

df_A_B = pd.DataFrame({'판매월': ['1월', '2월', '3월', '4월'],
                       '제품A': [100, 150, 200, 130],
                       '제품B': [90, 110, 140, 170]})

df_C_D = pd.DataFrame({'판매월': ['1월', '2월', '3월', '4월'],
                       '제품C': [112, 141, 203, 134],
                       '제품D': [90, 110, 140, 170]})
                       
df_A_B.merge(df_C_D)

 

merge 통합 방법

df_left = pd.DataFrame({'key':['A','B','C'], 'left': [1, 2, 3]})
df_right = pd.DataFrame({'key':['A','B','D'], 'right': [4, 5, 6]})

 

left

df_left.merge(df_right, how='left', on= 'key')

 

right

df_left.merge(df_right, how='right', on= 'key')

 

outer

df_left.merge(df_right, how='outer', on= 'key') # FULL JOIN

 

inner

df_left.merge(df_right, how='inner', on= 'key') # 교집합

728x90

'Python > Python 기초문법' 카테고리의 다른 글

Python - VScode에서 가상환경 만들기  (0) 2024.01.21
Python - Pandas excel 파일 입출력 및 데이터 불러오기  (0) 2024.01.08
Python - Pandas str.get(), idmax(), replace()  (1) 2024.01.05
Python - Pandas csv파일 입출력 및 데이터 불러오기  (0) 2024.01.05
Python - Pandas iloc와 loc의 차이  (0) 2024.01.04
'Python/Python 기초문법' 카테고리의 다른 글
  • Python - VScode에서 가상환경 만들기
  • Python - Pandas excel 파일 입출력 및 데이터 불러오기
  • Python - Pandas str.get(), idmax(), replace()
  • Python - Pandas csv파일 입출력 및 데이터 불러오기
GinaKim
GinaKim
안녕하세요! 반갑습니다 :)
  • GinaKim
    디디
    GinaKim
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • Python (43)
        • Python 기초문법 (25)
        • 데이터 시각화 (5)
        • 통계 (8)
        • 크롤링 (5)
      • git (5)
      • streamlit (5)
      • django (5)
      • 머신러닝 (18)
      • Spark (4)
      • Google Cloud Platform (8)
      • Tableau (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
GinaKim
Python - Pandas 데이터 통합하기 (concat, join, merge)
상단으로

티스토리툴바