카테고리 없음

Pandas DataFrame Concat, Append 차이

세모아이 2022. 3. 4. 16:26

두개 이상의 데이터 프레임을 합치고자 할때, 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 함수 사용을 권장하고 있습니다.