-
pandas - dataframe 합치기pandas 2024. 11. 20. 13:38
설명해주신 내용은 적절히 잘 정리되어 있습니다! 제가 조금 더 구조적으로 보강해드릴게요:
concat()과 merge()의 요약
- concat(): 데이터를 위아래로 쌓거나 옆으로 붙여 **"하나의 데이터프레임"**으로 결합합니다.
- merge(): 기준이 되는 공통 열을 기반으로 SQL JOIN처럼 병합합니다.
1. concat()의 특징과 사용법
- 기능:
- 두 개 이상의 데이터프레임을 단순히 연결하여 하나의 데이터프레임으로 만듭니다.
- axis를 지정해 행 또는 열 단위로 결합할 수 있습니다.
- 사용법
pd.concat([df1, df2], axis=0) # 행 방향(위아래)으로 연결 pd.concat([df1, df2], axis=1) # 열 방향(옆으로)으로 연결
axis 이해:
- axis=0: 행 방향 (기본값, 데이터를 위아래로 쌓음)
- axis=1: 열 방향 (데이터를 옆으로 붙임)
import pandas as pd df1 = pd.DataFrame({'id': [1, 2], 'name': ['Alice', 'Bob']}) df2 = pd.DataFrame({'id': [3, 4], 'name': ['Charlie', 'David']}) # 행 방향으로 연결 (위아래) result = pd.concat([df1, df2], axis=0) print(result)
id name 0 1 Alice 1 2 Bob 0 3 Charlie 1 4 David
2. merge()의 특징과 사용법
- 기능:
- 두 데이터프레임을 기준 열을 기반으로 병합합니다.
- SQL JOIN (INNER, LEFT, RIGHT, OUTER)을 지원합니다.
- 사용법:
pd.merge(df1, df2, on='id', how='inner') # INNER JOIN pd.merge(df1, df2, on='id', how='left') # LEFT JOIN
df1 = pd.DataFrame({'id': [1, 2], 'name': ['Alice', 'Bob']}) df2 = pd.DataFrame({'id': [2, 3], 'score': [85, 90]}) # INNER JOIN result = pd.merge(df1, df2, on='id', how='inner') print(result)
id name score 0 2 Bob 85
기능 concat() merge() 역할 데이터를 단순히 이어 붙이기 공통 열을 기준으로 데이터를 병합 SQL 개념 UNION (ALL 포함) JOIN (INNER, LEFT, RIGHT, OUTER) 결합 방향 행(axis=0), 열(axis=1) 모두 가능 항상 행 방향으로 데이터 병합 기준 열 기준 열 없음 공통 열 또는 인덱스를 기준으로 병합 중복 제거 중복 데이터 그대로 유지 JOIN 방식에 따라 결과가 달라짐 'pandas' 카테고리의 다른 글
pandas - .apply( ) (0) 2024.11.21 pandas 데이터 이어붙이기 (2) 2024.11.20 같은 CSV 파일이라도 encoding이 다른 이유 (7) 2024.11.20 pandas 라이브러리로 데이터 가공하기 (1) 2024.11.19 히트맵(Heatmap)이란? 데이터 시각화의 핵심 도구! (1) 2024.11.18