concat 함수는 두 개 이상의 데이터프레임을 하나로 결합하는 데 사용된다. 축(axis) 방향에 따라 데이터프레임을 수평 또는 수직으로 결합할 수 있다.
pd.concat(objs, axis=0, join='outer', ignore_index=False, keys=None, levels=None, names=None, verify_integrity=False, sort=False, copy=True)
objs
: 결합할 데이터프레임이나 시리즈의 리스트axis
: 결합할 축 (0: 수직, 1: 수평, 기본값 0)join
: 결합 방식 ('inner' 또는 'outer', 기본값 'outer')ignore_index
: 인덱스를 무시하고 새로운 인덱스를 생성할지 여부 (기본값 False)keys
: 각 데이터프레임을 구분할 키 값levels
: 다중 인덱스 레벨names
: 다중 인덱스 이름verify_integrity
: 중복 인덱스 확인 여부 (기본값 False)sort
: 열 이름을 정렬할지 여부 (기본값 False)copy
: 원본 데이터의 복사 여부 (기본값 True)import pandas as pd
import numpy as np
# 두 개의 데이터프레임 생성
df1 = pd.DataFrame({
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'C': ['C0', 'C1', 'C2', 'C3']
})
df2 = pd.DataFrame({
'A': ['A4', 'A5', 'A6', 'A7'],
'B': ['B4', 'B5', 'B6', 'B7'],
'C': ['C4', 'C5', 'C6', 'C7']
})
# 데이터프레임 수직 결합
result = pd.concat([df1, df2], axis=0)
print(result)
A B C
0 A0 B0 C0
1 A1 B1 C1
2 A2 B2 C2
3 A3 B3 C3
0 A4 B4 C4
1 A5 B5 C5
2 A6 B6 C6
3 A7 B7 C7
axis
매개변수를 통해 데이터프레임을 수직 또는 수평으로 결합할 수 있다.join
매개변수를 통해 결합 방식을 설정할 수 있다.merge 함수는 두 개 이상의 데이터프레임을 특정 열이나 인덱스를 기준으로 병합하는 데 사용된다. InnerJoin은 교집합을 기준으로 데이터프레임을 병합한다.
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
left
: 병합할 왼쪽 데이터프레임right
: 병합할 오른쪽 데이터프레임how
: 병합 방식 ('left', 'right', 'outer', 'inner', 기본값 'inner')on
: 병합 기준이 되는 열 이름left_on
: 왼쪽 데이터프레임의 병합 기준 열right_on
: 오른쪽 데이터프레임의 병합 기준 열left_index
: 왼쪽 데이터프레임의 인덱스를 병합 기준으로 사용할지 여부right_index
: 오른쪽 데이터프레임의 인덱스를 병합 기준으로 사용할지 여부sort
: 병합 결과를 정렬할지 여부suffixes
: 중복된 열 이름에 추가할 접미사copy
: 원본 데이터의 복사 여부indicator
: 병합 결과에 병합 방식을 나타내는 열 추가 여부validate
: 병합 방식 검증 (one_to_one, one_to_many, many_to_one, many_to_many)import pandas as pd
# 두 개의 데이터프레임 생성
df1 = pd.DataFrame({
'key': ['K0', 'K1', 'K2', 'K3'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']
})
df2 = pd.DataFrame({
'key': ['K0', 'K1', 'K2', 'K4'],
'C': ['C0', 'C1', 'C2', 'C4'],
'D': ['D0', 'D1', 'D2', 'D4']
})
# Inner Join을 사용한 데이터프레임 병합
result = pd.merge(df1, df2, how='inner', on='key')
print(result)
key A B C D
0 K0 A0 B0 C0 D0
1 K1 A1 B1 C1 D1
2 K2 A2 B2 C2 D2
on
매개변수를 통해 병합 기준 열을 설정할 수 있다.LeftJoin과 RightJoin은 각각 왼쪽 또는 오른쪽 데이터프레임을 기준으로 병합하여, 기준 데이터프레임의 모든 행을 포함하도록 병합하는 방식이다.
pd.merge(left, right, how='left', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
left
: 병합할 왼쪽 데이터프레임right
: 병합할 오른쪽 데이터프레임how
: 'left'로 설정하여 왼쪽 데이터프레임을 기준으로 병합pd.merge(left, right, how='right', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
left
: 병합할 왼쪽 데이터프레임right
: 병합할 오른쪽 데이터프레임how
: 'right'로 설정하여 오른쪽 데이터프레임을 기준으로 병합import pandas as pd
# 두 개의 데이터프레임 생성
df1 = pd.DataFrame({
'key': ['K0', 'K1', 'K2', 'K3'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']
})
df2 = pd.DataFrame({
'key': ['K0', 'K1', 'K2', 'K4'],
'C': ['C0', 'C1', 'C2', 'C4'],
'D': ['D0', 'D1', 'D2', 'D4']
})
# Left Join을 사용한 데이터프레임 병합
left_result = pd.merge(df1, df2, how='left', on='key')
print(left_result)
key A B C D
0 K0 A0 B0 C0 D0
1 K1 A1 B1 C1 D1
2 K2 A2 B2 C2 D2
3 K3 A3 B3 NaN NaN
# Right Join을 사용한 데이터프레임 병합
right_result = pd.merge(df1, df2, how='right', on='key')
print(right_result)
``
`
### 예시 결과
```plaintext
key A B C D
0 K0 A0 B0 C0 D0
1 K1 A1 B1 C1 D1
2 K2 A2 B2 C2 D2
3 K4 NaN NaN C4 D4
how
매개변수를 'left' 또는 'right'로 설정하여 병합 방식을 선택할 수 있다.OuterJoin은 두 데이터프레임의 모든 행을 포함하여 병합하는 방식으로, 공통되지 않는 데이터도 포함하여 결합한다.
pd.merge(left, right, how='outer', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'), copy=True, indicator=False, validate=None)
left
: 병합할 왼쪽 데이터프레임right
: 병합할 오른쪽 데이터프레임how
: 'outer'로 설정하여 두 데이터프레임의 모든 행을 포함하여 병합import pandas as pd
# 두 개의 데이터프레임 생성
df1 = pd.DataFrame({
'key': ['K0', 'K1', 'K2', 'K3'],
'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3']
})
df2 = pd.DataFrame({
'key': ['K0', 'K1', 'K2', 'K4'],
'C': ['C0', 'C1', 'C2', 'C4'],
'D': ['D0', 'D1', 'D2', 'D4']
})
# Outer Join을 사용한 데이터프레임 병합
outer_result = pd.merge(df1, df2, how='outer', on='key')
print(outer_result)
key A B C D
0 K0 A0 B0 C0 D0
1 K1 A1 B1 C1 D1
2 K2 A2 B2 C2 D2
3 K3 A3 B3 NaN NaN
4 K4 NaN NaN C4 D4
how
매개변수를 'outer'로 설정하여 모든 데이터를 포함한 병합을 수행한다.concat
merge
InnerJoin
LeftJoin