AI/Pandas

[Pandas] DataFrame을 합치는 방법

sangwonYoon 2023. 3. 9. 01:26

DataFrame을 합치는 방법에 대해 알아보자.


merge 함수

  • SQL의 join과 같은 역할을 한다.
pd.merge(데이터프레임1, 데이터프레임2, how = merge 방식, on=기준 column)

how : merge 방식(inner, outer, left, right) 중 하나를 지정한다. 기본값은 inner

on : merge를 수행할 기준 column을 지정한다.

fruit = pd.DataFrame({'Code':[123, 456, 789, 1011, 1112], 'Fruit':['Apple', 'Banana', 'Cherry', 'Lemon', 'Peach']})
grade = pd.DataFrame({'Code':[123, 789, 1314], 'Grade':['A', 'B', 'C']})

print(fruit)
# 출력:
#    Code   Fruit
# 0   123   Apple
# 1   456  Banana
# 2   789  Cherry
# 3  1011   Lemon
# 4  1112   Peach

print(grade)
# 출력:
#    Code Grade
# 0   123     A
# 1   789     B
# 2  1314     C

print(pd.merge(fruit, grade, on = "Code"))
# 출력:
#    Code   Fruit Grade
# 0   123   Apple     A
# 1   789  Cherry     B

print(pd.merge(fruit, grade, how = 'outer', on = "Code"))
# 출력:
#    Code   Fruit Grade
# 0   123   Apple     A
# 1   456  Banana   NaN
# 2   789  Cherry     B
# 3  1011   Lemon   NaN
# 4  1112   Peach   NaN
# 5  1314     NaN     C

 

두 DataFrame에서 기준 column의 이름이 다를 때는 아래와 같은 방식으로 merge 함수를 사용한다.

pd.merge(데이터프레임1, 데이터프레임2, left_on=기준 column1, right_on=기준 column2)

 

column이 아닌, index를 기준으로 merge하는 경우에는 아래와 같은 방식으로 merge 함수를 사용한다.

pd.merge(데이터프레임1, 데이터프레임2, left_index=True, right_index=True)

 

concat

  • 같은 형태의 데이터를 합칠 때 사용한다.
  • 합칠 DataFrame을 list에 담아 인자로 넘긴다.

1. 위 + 아래로 데이터를 합칠 때

pd.concat([데이터프레임1, 데이터프레임2])

 

2. 왼쪽 + 오른쪽으로 데이터를 합칠 때

pd.concat([데이터프레임1, 데이터프레임2], axis = 1)