Pandas에서 merge
와 concat
은 DataFrame 를 합치는(결합하는) 데 사용되는 방법.
merge
:
- SQL
join
과 유사함. - 두
DataFrame
간의 공통column
이나index
를 기준 column ( on parameter)으로 삼아 결합 inner
,outer
,left
,right
다양한 join 조인 타입을 지원 (how
parameter)함.- 때문에 합쳐지는
DataFrame
이 다른 columns를 갖는 경우가 많음.
- 때문에 합쳐지는
- 주로 column based conjunction 에 사용됩니다.
다음의 code snippet을 참고하라 (기본으로 inner
join이 사용된다.)
# Load Library
import pandas as pd
# Create DataFrame
student_data = {
'student_id': ['19973037', '20220102', '20232323'],
'grade': ['b', 'a', 'a+']
}
df_st_data = pd.DataFrame(
student_data,
columns=['student_id', 'grade']
)
student_credit = {
'student_id': ['973037', '20220102', '20232323', '771231'],
'credit': ['16', '18', '21', '888']
}
df_st_credit = pd.DataFrame(
student_credit,
columns=['student_id', 'credit']
)
# merge DataFrame
df_ret = pd.merge(
df_st_data,
df_st_credit,
on = 'student_id'
)
df_ret.head(3)
관련된 예제는 다음을 참고할 것.
2024.01.12 - [Python] - [pandas] merge 예제.
concat
:
- 단순히 두
DataFrame
을 상하 또는 좌우로 연결. index
가 중복될 수 있으므로 주의가 필요함.axis
parameter를 사용해 행(0
) 또는 열(1
) 방향 의 결합을 선택 가능함.
# Load Library
import pandas as pd
# Create DataFrame
a = {
'id': [0,1,2],
'first': ['kim', 'lee', 'park'],
'second': ['1', '2', '3']
}
df_a = pd.DataFrame(a, columns=['id','first','second'])
# Create DataFrame
b = {
'id': [3,4,5],
'first': ['tae', 'kwon', 'Um'],
'last': ['jason', 'red', 'green']
}
df_b = pd.DataFrame(b, columns=['id','first','last'])
# Concatenate Dataframe by rows
df_c = pd.concat([df_a,df_b],axis=0)
df_d = pd.concat([df_a,df_b],axis=1)
Summary
merge
는 더 복잡한 결합 조건(예: 특정 키에 따른 결합)에 적합하고,concat
은 데이터를 단순하게 이어 붙일 때 사용됨.
'Python' 카테고리의 다른 글
[pandas] 데이터 타입에 따른 column 추출 (0) | 2024.01.12 |
---|---|
[pandas] merge 예제. (0) | 2024.01.12 |
[Term] ETL Tools (0) | 2024.01.10 |
[pandas] dropna : missing value 처리 (삭제) (0) | 2024.01.09 |
[pandas] Column (or rows) 제거하기 (0) | 2024.01.09 |