이름 바꾸기 - 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
와 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 |