morijwana
수로그
morijwana
전체 방문자
오늘
어제
  • 분류 전체보기
    • 강의노트
    • Machine Learning
      • Pandas
      • NLP
    • Computer Science
      • Linux
      • TIL
    • Development
      • React
      • Swift
      • Javascript
    • 스터디 기록
      • Clean Code
      • 구글 BERT의 정석
      • 개발도서
      • 기타
    • Problem Solving
      • Baekjoon
      • ICPC Sinchon
    • 끄적
      • 끄적끄적
      • 요리왕

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 회고
  • 프로그래밍언어론
  • Pandas
  • cs224n
  • Bert
  • 자연어처리
  • 프레임워크없는프론트엔드개발
  • word2vec
  • gdsc
  • ML
  • 백준
  • GDSC Sookmyung
  • 구글BERT의정석
  • nlp
  • 데이터사이언스
  • Solution Challenge
  • 개발도서
  • 구부정스터디
  • 민트하임스터디
  • Python

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
morijwana

수로그

[kaggle courses] Pandas - Renaming and Combining
Machine Learning/Pandas

[kaggle courses] Pandas - Renaming and Combining

2021. 10. 19. 18:51

https://www.kaggle.com/residentmario/renaming-and-combining

이름 바꾸기 - rename, rename_axis

rename()은 인덱스나 열의 이름을 바꿀 때 사용한다. 아래의 예제처럼 dictionary 안에 key 값은 기존 이름, value 값은 바꾸고자 하는 이름을 넣어 columns 파라미터에 할당하면 된다. rename()은 다양한 방법의 입력 포맷을 지원하지만, 보통 dictionary를 사용하는 게 가장 편하다.

reviews.rename(columns={'points':'score'})

 

인덱스 이름을 바꾸는 방법은 열 이름을 바꾸는 방법처럼 dictionary에 기존 이름과 바꾸고자 하는 이름의 쌍을 만든 뒤 index 파라미터에 할당하면 된다. 하지만 이 방법보다는 set_index()로 변경하는 게 보통은 더 편하다.

reviews.rename(index={0: 'firstEntry', 1:'secondEntry'})

 

 

열 인덱스와 행 인덱스 모두 자체적인 name 속성을 갖는다. rename_axis() 메서드로 행 인덱스와 열 인덱스의 이름을 바꿀 수 있다.

reviews.rename_axis("wines", axis='rows').rename_axis("fields", axis='columns')

 

 

 

결합하기 - concat, join, merge

데이터셋을 다룰 때 Series나 DataFrame을 합쳐야 하는 경우가 있다. 이럴 때 사용할 수 있는 함수는 (복잡도가 증가하는 순서대로)concat(), join(), merge()가 있으며, 여기서 merge()가 수행할 수 있는 대부분의 명령은 join()으로 더 간단하게 수행 가능하므로 concat()과 join()에 관해서만 알아보도록 하자.

가장 간단한 결합 방법은 concat()을 사용하는 것이다. 서로 다른 DataFrame이나 Series의 필드(열)이 동일할 때 사용 가능하다. 아래의 예시를 보면, 서로 다르지만 같은 필드를 갖고 있는 두 DataFrame(캐나다 YouTube 비디오 데이터셋, 영국 YouTube 비디오 데이터셋)을 concat()으로 세로로 병합했다.

canadian_youtube = pd.read_csv("../input/youtube-new/CAvideos.csv")
british_youtube = pd.read_csv("../input/youtube-new/GBvideos.csv")

pd.concat([canadian_youtube, british_youtube])

 

 

join()으로는 인덱스를 공통으로 가지는 서로 다른 DataFrame을 합칠 수 있다. 아래는 두 DataFrame 모두 title과 trending_date 필드를 멀티인덱스로 설정한 다음, join()으로 합쳐 같은 날 캐나다와 영국 둘 다에서 이슈에 오른 영상들을 확인할 수 있다. 이 연산은 join()의 왼쪽에 오는(left.join(right)에서 left) DataFrame에다가 right의 데이터 중 인덱스가 겹치는 레코드들만 합쳐진다. how='inner' 파라미터를 주면 교집합(캐나다, 영국 두 데이터셋에 모두 존재) 레코드만 가져올 수 있다.

left = canadian_youtube.set_index(['title', 'trending_date'])
right = british_youtube.set_index(['title', 'trending_date'])

left.join(right, lsuffix='_CAN', rsuffix='_UK')

 

lsuffix='_CAN'
rsuffix='_UK'

lsuffix와 rsuffix는 합쳐지는 두 DataFrame의 필드에 접미사를 붙여주는데, 두 DataFrame에 이름이 같은 필드가 있을 때 유용하게 사용 가능하다.

 

저작자표시 (새창열림)

'Machine Learning > Pandas' 카테고리의 다른 글

[kaggle courses] Pandas - Data Types and Missing Values  (0) 2021.10.18
[kaggle courses] Pandas - Grouping and Sorting  (0) 2021.10.16
[kaggle courses] Pandas - Summary Functions and Maps  (0) 2021.10.15
[kaggle courses] Pandas - Indexing, Selecting & Assigning (iloc, loc)  (0) 2021.10.15
[kaggle courses] Pandas - Creating, Reading and Writing  (0) 2021.10.14
    'Machine Learning/Pandas' 카테고리의 다른 글
    • [kaggle courses] Pandas - Data Types and Missing Values
    • [kaggle courses] Pandas - Grouping and Sorting
    • [kaggle courses] Pandas - Summary Functions and Maps
    • [kaggle courses] Pandas - Indexing, Selecting & Assigning (iloc, loc)
    morijwana
    morijwana
    행복한 휴학생의 devlog

    티스토리툴바