ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • pandas - dataframe 합치기
    pandas 2024. 11. 20. 13:38

    설명해주신 내용은 적절히 잘 정리되어 있습니다! 제가 조금 더 구조적으로 보강해드릴게요:


    concat()과 merge()의 요약

    • concat(): 데이터를 위아래로 쌓거나 옆으로 붙여 **"하나의 데이터프레임"**으로 결합합니다.
    • merge(): 기준이 되는 공통 열을 기반으로 SQL JOIN처럼 병합합니다.

    1. concat()의 특징과 사용법

    • 기능:
      • 두 개 이상의 데이터프레임을 단순히 연결하여 하나의 데이터프레임으로 만듭니다.
      • axis를 지정해 행 또는 열 단위로 결합할 수 있습니다.
    • 사용법
    pd.concat([df1, df2], axis=0)  # 행 방향(위아래)으로 연결
    pd.concat([df1, df2], axis=1)  # 열 방향(옆으로)으로 연결

     

    axis 이해:

    • axis=0: 행 방향 (기본값, 데이터를 위아래로 쌓음)
    • axis=1: 열 방향 (데이터를 옆으로 붙임)
    import pandas as pd
    
    df1 = pd.DataFrame({'id': [1, 2], 'name': ['Alice', 'Bob']})
    df2 = pd.DataFrame({'id': [3, 4], 'name': ['Charlie', 'David']})
    
    # 행 방향으로 연결 (위아래)
    result = pd.concat([df1, df2], axis=0)
    print(result)

     

       id     name
    0   1    Alice
    1   2      Bob
    0   3  Charlie
    1   4    David

     


     

    2. merge()의 특징과 사용법

    • 기능:
      • 두 데이터프레임을 기준 열을 기반으로 병합합니다.
      • SQL JOIN (INNER, LEFT, RIGHT, OUTER)을 지원합니다.
    • 사용법:
    pd.merge(df1, df2, on='id', how='inner')  # INNER JOIN
    pd.merge(df1, df2, on='id', how='left')   # LEFT JOIN

     

    df1 = pd.DataFrame({'id': [1, 2], 'name': ['Alice', 'Bob']})
    df2 = pd.DataFrame({'id': [2, 3], 'score': [85, 90]})
    
    # INNER JOIN
    result = pd.merge(df1, df2, on='id', how='inner')
    print(result)

     

       id name  score
    0   2  Bob     85

     

    기능 concat() merge()
    역할 데이터를 단순히 이어 붙이기 공통 열을 기준으로 데이터를 병합
    SQL 개념 UNION (ALL 포함) JOIN (INNER, LEFT, RIGHT, OUTER)
    결합 방향 행(axis=0), 열(axis=1) 모두 가능 항상 행 방향으로 데이터 병합
    기준 열 기준 열 없음 공통 열 또는 인덱스를 기준으로 병합
    중복 제거 중복 데이터 그대로 유지 JOIN 방식에 따라 결과가 달라짐

     

Designed by Tistory.