2024.01.12 - [Python] - [pandas] DataFrame 합치기 : concat 과 merge
merge
는 특정 column을 기준으로 하는 데이터프레임 결합이 필요한 경우 이용됨.
이 경우 사용되는 column은 on
parameter를 통해 지정한다.
# merge DataFrame
df_ret = pd.merge(
df_st_data,
df_st_credit,
on = 'student_id'
)
df_ret.head(3)
만일, 첫번째 argument (left라고 지칭됨)와 두번째 argument (right라고 지칭됨)로 지정된 DataFrame
객체들이 merge
의 기준이 되는 column의 이름이 다를 경우에는 left_on
(left에 해당하는 데이터프레임 객체에서 기준이 되는 column을 argument로 지정)와 right_on
(right에 해당)을 이용함.
# merge DataFrame
df_ret = pd.merge(
df_st_data,
df_st_credit,
left_on = 'student_id',
right_on = 'student_id'
)
df_ret
특정 column이 아닌 index 를 이용하는 경우는
left_index=True
및right_index=True
를 사용하면 됨.
merge
에서 사용되는 네가지 join은 다음과 같음.
어떤 join으로 동작할지는 how
파라메터의 값으로 결정되는데,
참고로, default로는 inner
가 사용됨.
df_outer = pd.merge(
df_st_data,
df_st_credit,
on = 'student_id',
how = 'outer'
)
위의 조각코드들을 수행하려면 다음의 코드를 미리 수행하고 테스트해볼 것.
# 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']
)
728x90
'Python' 카테고리의 다른 글
[python] Text mode vs. Binary mode: File open (0) | 2024.01.15 |
---|---|
[pandas] 데이터 타입에 따른 column 추출 (0) | 2024.01.12 |
[pandas] DataFrame 합치기 : concat 과 merge (0) | 2024.01.12 |
[Term] ETL Tools (0) | 2024.01.10 |
[pandas] dropna : missing value 처리 (삭제) (0) | 2024.01.09 |