이번 포스팅에서는 pandas.index.difference (판다스 인덱스 difference) 에 대해 정리해 보겠습니다.
pandas.index.difference (판다스 인덱스 difference) 기본 포맷 및 파라미터
pandas.index.difference 는 두개의 판다스 인덱스 객체를 비교한 후 인덱스1 엔 있지만 인덱스 2엔 없는 요소만 인덱스 형태로 반환합니다.
포맷 및 파라미터는 하기와 같습니다.
인덱스1.difference(인덱스2, sort=None)
sort 는 기본값으로 None 이지만 False 나 True 를 설정할 수 있습니다. False 로 설정할 경우 원래 인덱스 순서입니다.
pandas.index.difference (판다스 인덱스 difference) 활용법
pandas.index.difference 는 전체 데이터셋 칼럼(df.columns)에서 특정 변수만 따로 분리해 내야 할 경우 유용하게 사용할 수 듯 합니다.
특히 머신러닝 모델을 만들 때 Target 이 될 종속변수와 나머지 변수를 분리한다든가, 모델 훈련에 사용할 독립변수 (X_train) 를 선택할 때, Target 값에 직접 영향을 주지 않을법한 무의미한 정보의 칼럼들은 제외하는 경우가 종종 있습니다. 이럴 때, pandas.index.difference (판다스 인덱스 difference)를 활용할 수 있습니다.
pandas.index.difference (판다스 인덱스 difference) 예시
직접 데이터를 가지고 살펴보겠습니다.
Scikit learn (사이킷런) 에서 제공하는 보스톤 주택 가격 데이터 (load_boston) 를 가져와서 회귀 분석을 시도한다고 가정하겠습니다.
- 참고로 이 데이터셋의 행(row) 은 개별 정보입니다. 지역 범죄 발생률(CRIM), 방개수(RM), 흑인거주비율(B), 저소득층 비율(LSTAT), 고속도로 간 거리(RAD) 등 다양한 정보를 담고 있습니다.
- PRICE 는 주택 가격을 의미하는데, 위와 같은 feature 들을 가지는 주택에 대한 가격(PRICE) 을 예측하는 회귀 분석 모델을 만들고자 합니다.
- PRICE 는 종속변수, 나머지 변수들은 종속변수에 영향을 주는 독립변수가 되겠죠.
df.head() 를 출력하면 다음과 같습니다.
이 때, 총 14개의 칼럼 중 종속변수인 PRICE 칼럼과 독립변수 중 하나인 CHAS 칼럼은 제외하고 나머지 12개 칼럼만 불러오고 싶다고 가정하겠습니다.
처음엔 df.columns 를 리스트로 변환한 후 슬라이싱을 이용하여 추출하였습니다.
위와 같은 방법으로 진행해도 되나 pandas.index.difference (판다스 인덱스 difference) 를 활용하여 훨씬 더 간단하게 두 칼럼을 제외해보겠습니다. 이 때 sort=False 로 설정하여 보스턴 데이터셋 내 원래 순서대로 출력되도록 하였습니다.
# pandas.index.difference | |
import pandas as pd
features = df.columns.difference(['PRICE', 'CHAS'], sort=False)
features
|
cs |
PRICE 와 CHAS 가 제외되어 반환됨을 알 수가 있습니다.
- 인덱스1에 해당하는 df.columns 는 다음과 같습니다.
- 이를 인덱스2인 ['PRICE', 'CHAS'] 와 비교하여
- 인덱스2 에는 없고 인덱스1에만 있는 값만, 즉 PRICE 와 CHAS 를 제외하여 반환하게 되는 것입니다. 이 때 반환된 결과값도 인덱스 형태로 반환됨을 알 수 있습니다.
참고자료>>
https://pandas.pydata.org/docs/reference/api/pandas.Index.difference.html
pandas.Index.difference — pandas 2.1.1 documentation
Whether to sort the resulting index. By default, the values are attempted to be sorted, but any TypeError from incomparable elements is caught by pandas. None : Attempt to sort the result, but catch any TypeErrors from comparing incomparable elements. Fals
pandas.pydata.org
'데이터관련공부 > Python' 카테고리의 다른 글
Python | 값 변환하기 (조건 포함) (0) | 2023.11.24 |
---|---|
python | 시각화 (Visualization), Matplotlib으로 여러 개 그래프 그리기 (0) | 2023.10.26 |
Python | while 반복문 정리 (0) | 2023.10.13 |
Python | 파이썬 내장 함수 정리 (0) | 2023.10.05 |
Python | 문자열과 변수를 함께 출력하는 법 (문자열 포맷팅) (0) | 2023.08.31 |