Pandas : DataFrame 합치기

2024. 1. 22. 10:51·파이썬/Pandas
반응형

데이터 분석에서 여러 개의 데이터 세트를 결합하는 것은 흔한 일입니다. Pandas는 이를 위해 다양한 DataFrame 연결 메서드를 제공합니다. 이번 글에서는 두 개의 DataFrame 연결에 초점을 맞춰, 유용한 방법과 주의 사항을 살펴보겠습니다.

 

1. Merge : 공통 열 기준으로 결합

두 개의 DataFrame이 공통 열을 가지고 있을 때, 해당 열을 기준으로 데이터를 합병할 수 있습니다. 가장 일반적인 방법은 merge() 메서드 사용입니다.

df1 = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 28]})
df2 = pd.DataFrame({'name': ['Alice', 'Charlie'], 'city': ['Seoul', 'Jeonju']})

merged_df = pd.merge(df1, df2, on='name')

print(merged_df)

위 코드는 name 열을 기준으로 두 DataFrame을 합병합니다. 결과적으로, name, age, city 열을 포함하는 새로운 DataFrame이 생성됩니다.

 

2. Concat : 축 기준으로 결합

두 개의 DataFrame을 축(axis)을 기준으로 연결할 수 있습니다. 축은 0 (행) 또는 1 (열)을 나타냅니다.

df1 = pd.DataFrame({'fruit': ['apple', 'banana', 'cherry'], 'price': [1000, 500, 700]})
df2 = pd.DataFrame({'vegetable': ['carrot', 'potato', 'onion'], 'price': [300, 200, 400]})

combined_df = pd.concat([df1, df2], axis=0)  # 행 기준으로 연결

print(combined_df)

위 코드는 두 DataFrame을 행 기준으로 연결합니다. 결과적으로, fruit, price, vegetable 열을 포함하는 새로운 DataFrame이 생성됩니다.

concat 메서드는 두 개 이상의 데이터프레임을 합칠 수 있습니다. 
pd.concat([df, df1, df2, df3], axis =0 )

3. Join : 모든 행 포함

합병과 연결은 공통 열이나 축을 기준으로 데이터를 결합하지만, 외부 연결은 모든 행을 포함하도록 결합합니다. 외부 연결에는 좌측 연결, 우측 연결, 내측 연결이 있습니다.

df1 = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 28]})
df2 = pd.DataFrame({'name': ['Alice', 'David'], 'city': ['Seoul', 'Busan']})

left_joined_df = df1.merge(df2, how='left', on='name')  # 좌측 연결

print(left_joined_df)

위 코드는 좌측 연결을 수행합니다. 결과적으로, name, age 열은 항상 포함되고, city 열은 해당하는 데이터가 있으면 포함되고, 없으면 NaN으로 채워집니다.

 

주의 사항

  • 공통 열이나 축을 기준으로 연결할 때는 해당 열이나 축의 데이터 유형이 일치해야 합니다.
  • 외부 연결 시 데이터 누락에 주의해야 합니다.
  • 연결 방식에 따라 필요한 결과가 달라질 수 있으니, 어떤 연결이 가장 적합한지 고려해야 합니다.
저작자표시 비영리 변경금지 (새창열림)

'파이썬 > Pandas' 카테고리의 다른 글

데이터프레임의 인덱싱 : at, iloc, loc  (3) 2024.02.07
Pandas에서 SettingWithCopy 에러 발생 원인과 해결 방법  (0) 2024.01.26
저장된 파일을 데이터프레임으로 읽어올 때 na_values, na_filter 매개변수 활용하기  (0) 2024.01.21
ValueError: Cannot mask with non-boolean array containing NA / NaN values  (0) 2024.01.20
Pandas 데이터 필터링 : 원하는 데이터만 골라내기  (0) 2024.01.19
'파이썬/Pandas' 카테고리의 다른 글
  • 데이터프레임의 인덱싱 : at, iloc, loc
  • Pandas에서 SettingWithCopy 에러 발생 원인과 해결 방법
  • 저장된 파일을 데이터프레임으로 읽어올 때 na_values, na_filter 매개변수 활용하기
  • ValueError: Cannot mask with non-boolean array containing NA / NaN values
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • DataBase (0)
        • MongoDB (4)
        • PostgreSQL (0)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    learntocode
    C#
    스크립트 실행
    unity
    쇼핑몰리뷰
    cv2
    Python
    파이썬
    스마트스토어리뷰
    믈레코비타멸균우유
    셀레니움
    list
    유니티
    devlife
    appdevelopment
    리스트
    ipcamera
    codingtips
    programmerlife
    스크립트 실행 순서
    리뷰관리
    리뷰이관
    상품 리뷰 크롤링
    카페24리뷰
    rtsp
    긴유통기한우유
    programming101
    라떼우유
    카페24리뷰이관
    codingcommunity
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
Pandas : DataFrame 합치기
상단으로

티스토리툴바