본문 바로가기

파이썬

8. 데이터 병합과 추가

데이터 병합

데이터 준비

import pandas as pd

# 첫 번째 데이터프레임 생성
data1 = {
    '제품ID': [1, 2, 3],
    '제품명': ['노트북', '모니터', '키보드']
}
df1 = pd.DataFrame(data1)

# 두 번째 데이터프레임 생성
data2 = {
    '제품ID': [1, 2, 4],
    '가격': [1000, 200, 50]
}
df2 = pd.DataFrame(data2)

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)

 

내부 조인(Inner Join)

# 내부 조인
inner_join = pd.merge(df1, df2, on='제품ID', how='inner')

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)
print("\n내부 조인 결과:")
print(inner_join)

 

외부 조인(Outer Join)

# 외부 조인
outer_join = pd.merge(df1, df2, on='제품ID', how='outer')

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)
print("\n외부 조인 결과:")
print(outer_join)

 

왼쪽 조인(Left Join)

# 왼쪽 조인
left_join = pd.merge(df1, df2, on='제품ID', how='left')

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)
print("\n왼쪽 조인 결과:")
print(left_join)

 

오른쪽 조인(Right Join)

# 오른쪽 조인
right_join = pd.merge(df1, df2, on='제품ID', how='right')

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)
print("\n오른쪽 조인 결과:")
print(right_join)

 

교차조인(Cross Join)

# 교차 조인 
cross_join = pd.merge(df1, df2, how='cross') 

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)
print("\n교차 조인 결과:") 
print(cross_join)

데이터 추가(Union)

데이터준비

# 첫 번째 데이터프레임 생성
data1 = {
    '이름': ['홍길동', '이순신'],
    '나이': [30, 40]
}
df1 = pd.DataFrame(data1)

# 두 번째 데이터프레임 생성
data2 = {
    '이름': ['강감찬', '유관순'],
    '나이': [50, 20]
}
df2 = pd.DataFrame(data2)

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)

 

데이터프레임 결합(Union)

# 데이터프레임 세로로 결합
union_df = pd.concat([df1, df2], ignore_index=True)

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)
print("\n유니온 결과:")
print(union_df)


# 인덱스를 유지하면서 데이터프레임 결합
union_with_index = pd.concat([df1, df2], ignore_index=False)

# 데이터프레임 출력
print("첫 번째 데이터프레임:")
print(df1)
print("\n두 번째 데이터프레임:")
print(df2)
print("\n인덱스를 유지한 유니온 결과:")
print(union_with_index)

 

데이터프레임 열이 다른 경우 결합(Union)

# 열이 다른 데이터프레임 생성
data3 = {
    '이름': ['정약용', '김유신'],
    '주소': ['서울', '경주']
}
df3 = pd.DataFrame(data3)

# 데이터프레임 결합
union_with_different_columns = pd.concat([df1, df3], ignore_index=True)

print("\n열이 다른 데이터프레임 결합 결과:")
print(union_with_different_columns)

 

 

 

'파이썬' 카테고리의 다른 글

10. 탐색적 데이터 분석  (0) 2025.03.18
9. Feature Engieneering (특성공학, 변수파생)  (0) 2025.03.18
7. 데이터전처리  (0) 2025.03.18
6. 데이터 전처리 (결측치와 이상치)  (0) 2025.03.17
5. 데이터선택하기  (0) 2025.03.17