두개 이상의 데이터 프레임을 합치고자 할때, Concat 와 Append method 를 사용할 수 있습니다.
Concat 는 행을 합치거나, 열을 합치는 것 모두 가능한 반면, Append 는 주로 행을 합칠 때 사용합니다.
다음 예제를 보겠습니다.
1. 행을 합치는 경우
l1 = [{'name': 'Tom', 'age': "10"},
{'name': 'Sarah', 'age': "20"},
{'name': 'Joy', 'age': "30"}]
l2 = [{'name': 'Matthew', 'age': "14"},
{'name': 'Jessi', 'age': "23"},
{'name': 'Max', 'age': "45"}]
df1 = pd.DataFrame(l1, columns = ['name', 'age'])
df2 = pd.DataFrame(l2, columns = ['name', 'age'])
두개의 데이터 프레임이 같은 열을 가지고 있으므로 행일 합쳐 하나의 데이터 프레임으로 병합할 수 있습니다.
ignore_index = True 는 두개의 데이터 프레임이 기존에 가지고 있던 인덱스를 무시하고 새 인덱스를 생성합니다.
pd.concat([df1, df2], ignore_index=True)
append 함수도 같은 결과를 보여줍니다.
df1.append(df2, ignore_index=True)
2. 열을 합치는 경우
이번에는 다른 열을 가진 두 데이터 프레임을 인덱스 기준으로 열로 합쳐보도록 하겠습니다.
l3 = [{'name': 'Tom', 'age': "10"},
{'name': 'Sarah', 'age': "20"},
{'name': 'Joy', 'age': "30"}]
l4 = [{'sex': 'Male', 'position': "developer"},
{'sex': 'Female', 'position': "designer"},
{'sex': 'Female', 'position': "interior"}]
df3 = pd.DataFrame(l3, columns = ['name', 'age'])
df4 = pd.DataFrame(l4, columns = ['sex', 'position'])
이 경우에도 concat 을 사용하고 axis 옵션을 1(열로) 설정하여 합칠 수 있습니다.
pd.concat([df3, df4], axis=1, ignore_index=True)
Python 공식문서에는 concat 함수 사용의 범위가 더 넓으므로 concat 함수 사용을 권장하고 있습니다.