컴퓨터/파이썬
파이썬(Python) - merge와 join
해피밀세트
2020. 3. 12. 20:49
컬럼 이름으로 merge
df1 = DataFrame({'철학':['1_동양철학','2_서양철학','3_심리학','4_윤리학'], '종교':['1_기독교','2_불교','3_천도교','4_이슬람교'], '과학':['1_물리학','2_화학','3_수학','4_천문학']}) df1 |
![]() |
df2 = DataFrame({'과학':['3_수학','4_천문학','5_지학','6_생명과학'], '사회':['3_통계학','4_경제학','5_정치학','6_법학'], '예술':['3_건축물','4_음악','5_회화','6_스포츠']}) df2 |
![]() |
on 사용
# 같은 데이터 & 같은 컬럼 이름으로 merge pd.merge(df1,df2,on='과학') |
![]() |
# 같은 데이터 & 같은 컬럼 이름으로 merge / 원하는 컬럼만 출력 pd.merge(df1[['종교','과학']],df2[['과학','사회']], on='과학') |
![]() |
# 같은 데이터 & 다른 컬럼 이름으로 merge / |
![]() |
how 사용
a = df1[['종교','과학']]
b = df2[['과학','예술']]
# SQL에서 inner join |
![]() |
# SQL에서 left outer join pd.merge(a,b, on='과학', how='left') |
![]() |
# SQL에서 right outer join pd.merge(a,b, on='과학', how='right') |
![]() |
# SQL에서 full outer join pd.merge(a,b, on='과학', how='outer') |
![]() |
인덱스 이름으로 merge
중복되는 컬럼이 없을때 인덱스 이름으로 merge한다.
df1 = DataFrame([[20,40,30],[50,10,20],[40,25,30],[15,20,50]], columns = ['서울','분당','천안'], index = ['사과','딸기','포도','호두']) df1 |
![]() |
df2 = DataFrame([[30,15,40],[25,30,45],[50,15,30],[20,50,10]], columns = ['인천','춘천','광주'], index = ['사과','딸기','포도','체리']) df2 |
![]() |
# 인덱스 이름으로 merge한다.
pd.merge(df1,df2,left_index=True,right_index=True)
how 사용
# SQL에서 inner join pd.merge(df1,df2,left_index=True,right_index=True,how='inner') |
![]() |
# SQL에서 left outer join pd.merge(df1,df2,left_index=True,right_index=True,how='left') |
![]() |
# SQL에서 right outer join pd.merge(df1,df2,left_index=True,right_index=True,how='right') |
![]() |
# SQL에서 full outer join pd.merge(df1,df2,left_index=True,right_index=True,how='outer') |
![]() |
join 사용
# left_index=True, right_index=True와 같은 기능
df1.join(df2)
# SQL에서 left outer join / 기본값 df1.join(df2,how='left') |
![]() |
# SQL에서 right outer join df1.join(df2,how='right') |
![]() |
# SQL에서 inner join df1.join(df2,how='inner') |
![]() |
# SQL에서 right outer join df1.join(df2,how='outer') |
![]() |
반응형