logo

데이터 합치기

판다스에서 여러 개의 데이터를 합치는 방법을 알아보겠습니다.

import pandas as pd

행방향 합치기

다음과 같은 표 df1이 있습니다.

df1 = pd.DataFrame({'A': [101, 102, 103],
                    'B': [201, 202, 203]},
                    index=[0, 1, 2])
df1

A B
0 101 201
1 102 202
2 103 203

df1의 아래에 다음의 df2와 같은 표를 이어붙이려고 합니다.

df2 = pd.DataFrame({'A': [105, 106, 107],
                    'B': [205, 206, 207]},
                   index=[3, 4, 5])
df2

A B
3 105 205
4 106 206
5 107 207

concat 함수를 이용하면 2개의 표을 이어 붙일 수 있습니다. 기본적으로 행 방향으로 이어붙입니다. 즉, 첫 번째 표의 아래에 두 번째 표를 붙입니다.

pd.concat([df1, df2])

A B
0 101 201
1 102 202
2 103 203
3 105 205
4 106 206
5 107 207

한 줄 추가

표에 한 행을 추가하는 방법은 조금 다릅니다. 다음과 같은 한 행이 있을 때,

s = pd.Series({'A': 104, 'B': 204})

Series.to_frame().T로 한 행짜리 데이터 프레임으로 바꾼 뒤 합칩니다. ignore_index=True를 지정하면 합친 결과에 0부터 시작하는 새 인덱스를 붙입니다.

pd.concat([df1, s.to_frame().T], ignore_index=True)

A B
0 101 201
1 102 202
2 103 203
3 104 204

열방향 합치기

아래 표를 df1의 오른쪽에 붙여보겠습니다.

df3 = pd.DataFrame({'C': [301, 302, 303],
                    'D': [401, 402, 403]},
                    index=[0, 1, 2])
df3

C D
0 301 401
1 302 402
2 303 403

axis=1을 추가하면 열 방향으로 합칩니다.

pd.concat([df1, df3], axis=1)

A B C D
0 101 201 301 401
1 102 202 302 402
2 103 203 303 403

퀴즈

문제 1 / 3맞음: 0힌트: 0틀림: 0채점중: 0남음: 3

두 데이터 프레임을 위아래로 합치는 함수는 무엇인가요?

  • pd.concat()
  • pd.merge()
  • pd.DataFrame()
  • pd.pivot_table()

퀴즈를 풀려면 대화형 기능을 불러와야 합니다.

Previous
그룹핑