본문 바로가기
카테고리 없음

python / 데이터 병합

by 에디터 윤슬 2024. 10. 23.
 

concat

import pandas as pd

# 두 개의 데이터프레임 생성
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5']})

# 위아래로 데이터프레임 연결
result_vertical = pd.concat([df1, df2], axis=0)

# 좌우로 데이터프레임 연결
result_horizontal = pd.concat([df1, df2], axis=1)

print("위아래 연결 결과:\n", result_vertical)
print("\n좌우 연결 결과:\n", result_horizontal)
  • axis: 연결하고자 하는 축(방향)을 지정합니다. 기본값은 0으로, 위아래로 연결하는 경우에 해당합니다. 1로 설정하면 좌우로 연결합니다.
  • ignore_index: 기본값은 False이며, 연결된 결과 데이터프레임의 인덱스를 유지합니다. True로 설정하면 새로운 인덱스를 생성합니다. (True → 기존 인덱스를 무시하고 새롭게 인덱스를 설정)

merge

import pandas as pd

# 두 개의 데이터프레임 생성
left_df = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
right_df = pd.DataFrame({'key': ['B', 'D', 'E', 'F'], 'value': [5, 6, 7, 8]})

# 'key' 열을 기준으로 두 데이터프레임 병합
merged_df = pd.merge(left_df, right_df, on='key', how='inner')

print(merged_df)
  • left와 right: 병합할 데이터프레임 중 병합되는 기준이 되는 왼쪽(left)과 오른쪽(right) 데이터프레임입니다.
  • how: 병합 방법을 나타내는 매개변수로, 'inner', 'outer', 'left', 'right' 등의 옵션이 있습니다.
    • 'inner': 공통된 키(열)를 기준으로 교집합을 만듭니다.
    • 'outer': 공통된 키를 기준으로 합집합을 만듭니다.
    • 'left': 왼쪽 데이터프레임의 모든 행을 포함하고 오른쪽 데이터프레임은 공통된 키에 해당하는 행만 포함합니다.
    • 'right': 오른쪽 데이터프레임의 모든 행을 포함하고 왼쪽 데이터프레임은 공통된 키에 해당하는 행만 포함합니다.
  • on: 병합 기준이 되는 열 이름(혹은 열 이름의 리스트)을 지정합니다.
    • left_on과 right_on: 왼쪽 데이터프레임과 오른쪽 데이터프레임에서 병합할 열 이름이 다른 경우에 사용합니다.