Pandas - concat으로 Dataframe 병합(how to merge dataframe)

안녕하세요 jay입니다.
이번 시간은 Pandas dataframe 병합에 대해 알아보겠습니다.
이걸로 꽤 오래 고생했네요ㅠㅠ
그럼 시작해 보겠습니다.


1. 열을 기준으로 데이터 프레임 병합
(Merge dataframe based on column)

데이터프레임들끼리, 열을 기준으로 합쳐보겠습니다.
코드는 아래에 있습니다.

import pandas as pd

raw_data = {
        'id': ['1', '2', '3', '4', '5'],
        'name': ['jay', 'jun', 'ggosae', 'minki', 'nari'], 
        'year': ['1993', '1994', '1994', '1993', '2000']}

df_a = pd.DataFrame(raw_data, columns = ['id', 'name', 'year'])
df_a

raw_data = {
        'id': ['4', '5', '6', '7', '8'],
        'name': ['hani', 'bum', 'hong', 'ji', 'yoon'], 
        'year': ['2001', '1998', '1995', '1996', '1988']}

df_b = pd.DataFrame(raw_data, columns = ['id', 'name', 'year'])
df_b

df_new = pd.concat([df_a, df_b]) # 열을 따라 2개의 Dataframe 병합
df_new
df_a 결과

df_b 결과

merge 결과

열을 기준으로 병합을 할 때, 반드시 columns 이름이 같아야
합칠 수 있습니다.

2. 행을 기준으로 데이터 프레임 병합
(Merge dataframe based on row)

데이터 프레임들을 행을 기준으로 합쳐보겠습니다.


import pandas as pd

raw_data = {
        'id': ['1', '2', '3', '4', '5'],
        'name': ['jay', 'jun', 'ggosae', 'minki', 'nari'], 
        'year': ['1993', '1994', '1994', '1993', '2000']}

df_a = pd.DataFrame(raw_data, columns = ['id', 'name', 'year'])
df_a

raw_data = {
        'id': ['4', '5', '6', '7', '8'],
        'name': ['hani', 'bum', 'hong', 'ji', 'yoon'], 
        'year': ['2001', '1998', '1995', '1996', '1988']}

df_b = pd.DataFrame(raw_data, columns = ['id', 'name', 'year'])
df_b

df_new = pd.concat([df_a, df_b], axis=1) # 행을 따라 2개의 Dataframe 병합
df_new

df_new 결과

행을 기준으로 병합은 열과 달리 특별한 기준이 필요가 없다.
예를 들어 df_b의 행이 하나가 더 많더라도
아래와 같이 결과가 나온다.

댓글