pd.concat
pd.concat 함수는 pandas에서 사용되는 데이터프레임을 연결하는 함수입니다.
주로 2개 이상의 데이터프레임을 행 또는 열 방향으로 이어붙일 때 사용됩니다.
기본 구조
- pd.concat([df1, df2])
df1과 df2가 아래와 같을 때
자주 사용되는 주요 파라미터 3개에 대한 설명입니다.
# df1
A B key
0 A0 B0 K0
1 A1 B1 K1
2 A2 B2 K2
# df2
A B C key
0 A3 B3 C3 K0
1 A4 B4 C4 K1
2 A5 B5 C5 K2
1. axis
- axis=0(행 방향) / axis=1(열 방향)
- default = 0
- 연결할 방향을 나타냅니다. 0이면 행 방향(위아래), 1이면 열 방향(좌우)
import pandas as pd
# pd.concat으로 데이터프레임 연결 (행 방향)
result_row = pd.concat([df1, df2], axis=0)
# 결과
result_row:
A B key C
0 A0 B0 K0 NaN
1 A1 B1 K1 NaN
2 A2 B2 K2 NaN
0 A3 B3 K0 C3
1 A4 B4 K1 C4
2 A5 B5 K2 C5
--------------------------------------------------------------
# pd.concat으로 데이터프레임 연결 (열 방향)
result_col = pd.concat([df1, df2], axis=1)
# 결과
result_col:
A B key A B C key
0 A0 B0 K0 A3 B3 C3 K0
1 A1 B1 K1 A4 B4 C4 K1
2 A2 B2 K2 A5 B5 C5 K2
2. ignore_index
- ignore_index=True(새로운 인덱스 부여) / ignore_index=False(기존 인덱스)
- default = False
- True이면 연결된 결과의 인덱스를 무시하고 새로운 인덱스를 부여
import pandas as pd
# pd.concat으로 데이터프레임 연결 (ignore_index=True)
result_ignore_true = pd.concat([df1, df2], ignore_index=True)
# 결과
result_ignore_true:
A B key C
0 A0 B0 K0 NaN
1 A1 B1 K1 NaN
2 A2 B2 K2 NaN
3 A3 B3 K0 C3
4 A4 B4 K1 C4
5 A5 B5 K2 C5
---------------------------------------------------------------
# pd.concat으로 데이터프레임 연결 (ignore_index=False)
result_ignore_false = pd.concat([df1, df2], ignore_index=False)
# 결과
result_ignore_false:
A B key C
0 A0 B0 K0 NaN
1 A1 B1 K1 NaN
2 A2 B2 K2 NaN
0 A3 B3 K0 C3
1 A4 B4 K1 C4
2 A5 B5 K2 C5
1 A4 B4 K1
2 A5 B5 K2
3. join
- join='inner'(교집합) / join='outer'(합집합)
- default = 'outer'
- 열 이름이 중복되는 경우, 'inner'는 교집합, 'outer'는 합집합을 사용하여 연결
import pandas as pd
# pd.concat으로 데이터프레임 연결 (join='outer')
result_outer = pd.concat([df1, df2], ignore_index=True, join='outer')
# 결과
result_outer:
A B key C
0 A0 B0 K0 NaN
1 A1 B1 K1 NaN
2 A2 B2 K2 NaN
3 A3 B3 K0 C3
4 A4 B4 K1 C4
5 A5 B5 K2 C5
----------------------------------------------------------------------
# pd.concat으로 데이터프레임 연결 (join='inner')
result_inner = pd.concat([df1, df2], ignore_index=True, join='inner')
# 결과
result_inner:
A B key
0 A0 B0 K0
1 A1 B1 K1
2 A2 B2 K2
3 A3 B3 K0
4 A4 B4 K1
5 A5 B5 K2
본 게시글은 ChatGPT의 도움을 받아 작성하였습니다.
'Language > Python' 카테고리의 다른 글
os 모듈 (0) | 2024.01.15 |
---|---|
pd.merge 함수 (0) | 2024.01.01 |
chr 함수, ord 함수 (시저 암호) (0) | 2023.12.28 |
Fraction 클래스 (2) | 2023.12.27 |
NumPy 기본 구문 & 함수 (2) | 2023.12.26 |