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)
      • MongoDB (4)
      • 하드웨어 (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)
  • 인기 글

  • 태그

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

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

티스토리툴바