# 라이브러리 불러오기
import pandas as pd
# 데이터프레임 만들기
df1 = pd.DataFrame({'a': ['a0', 'a1', 'a2', 'a3'],
'b': ['b0', 'b1', 'b2', 'b3'],
'c': ['c0', 'c1', 'c2', 'c3']},
index=[0, 1, 2, 3])
df1
df2 = pd.DataFrame({'a': ['a2', 'a3', 'a4', 'a5'],
'b': ['b2', 'b3', 'b4', 'b5'],
'c': ['c2', 'c3', 'c4', 'c5'],
'd': ['d2', 'd3', 'd4', 'd5']},
index=[2, 3, 4, 5])
df2
# 2개의 데이터프레임을 위 아래 행 방향으로 이어 붙이듯 연결하기
result1 = pd.concat([df1, df2])
result1
- df1과 df2를 위아래(axis=0)로 단순 연결
- 각 데이터프레임의 기존 인덱스를 그대로 유지
- df2의 인덱스(0, 1, 2)가 그대로 유지됨 → 중복 인덱스 발생 가능!
- 데이터프레임을 구분하기 어렵고, 연산 시 문제가 발생할 수도 있음
# ignore_index=True 옵션 설정하기
result2 = pd.concat([df1, df2], ignore_index=True)
result2
- df1과 df2를 위아래(axis=0)로 연결하면서, 인덱스를 새롭게 부여
- ignore_index=True → 연결 후 0부터 새로 연속된 인덱스 부여
- 기존 인덱스를 무시하고, 0부터 새롭게 연속된 인덱스 부여
- 데이터 정렬과 인덱스 관리를 쉽게 할 수 있음
# join='inner' 옵션 적용하기(교집합)
result2_in = pd.concat([df1, df2], axis=0, join='inner')
result2_in
- axis=0 → 위아래(행 방향)로 연결
- join='inner' → 두 데이터프레임에서 공통된 열(교집합)만 유지
- df1과 df2의 열 이름이 다를 경우, 공통된 열만 결과에 포함됨
- 공통 열(B, C)만 유지됨 → A, D는 제거됨
- 두 데이터프레임이 연결되었지만, 열이 교집합으로 제한됨
- 원래의 인덱스 유지 (df2의 0, 1, 2 인덱스가 그대로 남음)
✅ join='inner' → 두 데이터프레임의 공통 열(교집합)만 유지하여 병합
✅ axis=0 → 위아래(행 방향)로 데이터 연결
✅ 결과: 공통 열(B, C)만 남고, A, D는 제거됨
✅ 사용 추천: 공통된 열만 활용해야 할 경우
'데이터 분석가:Applied Data Analytics > 판다스 데이터분석' 카테고리의 다른 글
4. Data transformation - 영국시장의 중고 자동차 가격 데이터 다루기[프로젝트] (0) | 2025.02.13 |
---|---|
3. Data transformation (0) | 2025.02.12 |
1. Data cleaning - 타이타닉 데이터 다루기 (0) | 2025.02.11 |
6장_데이터프레임의 다양한 응용 (0) | 2025.02.10 |
Matplotlib (1) | 2025.02.07 |