일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- timeseries decomposition
- 음수값 #전처리 #선형보간 #pandas #데이터 #데이터분석
- seaborn # kdeplot # 데이터분석
- 빈 데이터프레임 #pandas #데이터전처리
- 시계열모듈
- 시계열시각화
- 년월일 데이터
- 시간형식변환
- loess
- stl
- 시계열데이터셋
- 시간형식
- 시계열 #reindex #인덱스 확장 #datetime index #index extention # 데이터전처리
- 응용이 보이는 선형대수
- 시계열
- pandas
- 시계열분해
- 플로틀리
- Python
- 크롤링자동화
- 리눅스개념
- 파이프라인전처리
- 이수역 양식집
- np.split
- 짧은 시계열 # 금융시계열
- 날짜파싱
- adf_test
- 오제이튜브
- pandas # 월말 날짜 # 마지막 주 # 날짜계산 # 시계열 # 마지막 주 금요일
- 확률
- Today
- Total
데이터분석과 개발
[Pandas] 원하는 데이터타입 컬럼 추출하기: df.dtypes, df.select_dtypes 본문
데이터 전처리 하거나 파악하는 단계에서 같은 데이터 타입만 뽑아서 보고 싶은 경우가 있습니다.
전처리의 경우 데이터 타입을 바꿔줄 때, 데이터분석 단계에서는 시각화해서 데이터를 파악해보는 경우에 그럴 것 같습니다.
저같은 경우, 처음 pandas를 시작했을 때 컬럼 하나하나 손수 데이터타입을 바꿔줬던 기억이 있네요,,
하지만 이미 pandas 안에 같은 데이터타입을 추출하는 방법이 구현되어 있었습니다. 제가 썼던 방법 2가지를 정리해보려 합니다.
Kaggle에서 다운 받은 타이타닉 데이터셋을 사용해보겠습니다.
import pandas as pd
import numpy as np
df = pd.read_csv('../Kaggle/Titanic/data/titanic/train.csv')
df = df.drop(columns=['PassengerId','Name', 'Ticket','Cabin'])
df = df.dropna()
df
1. df.dtypes 사용
df.dtypes 함수를 사용하면 컬럼명과 데이터타입을 series 형태로 반환해줍니다. dtypes를 활용하여 boolean indexing을 해주게 되면
# 데이터프레임 컬럼 데이터타입
print('데이터프레임 각 컬럼 데이터 타입')
print(df.dtypes)
# object 인 컬럼만 뽑기
df.dtypes[df.dtypes=='object']
df.dtypes 를 사용하면 이런 식으로 object형 컬럼을 추출할 수가 있습니다.
* df.dtypes 활용
pd.factorize를 활용해 object형을 카테고리 형식으로 바꿔보겠습니다.
for col in df.dtypes[df.dtypes=='object'].index:
print(col)
df[col] = pd.factorize(df[col])[0]
df
2. df.select_dtypes
두번째 같은 데이터타입 컬럼을 모아주는 방법으로 select_dtypes 라는 함수가 있습니다.
select_dtypes 의 함수엔 include, exclude 파라미터를 활용하여 원하는 데이터 타입 컬럼을 쉽게 모아줄 수 있습니다.
위와 마찬가지로 타이타닉 데이터셋을 사용하겠습니다.
# object 컬럼 추출
df.select_dtypes(include='object')
include 말고 exclude를 사용하여 object 컬럼만 제외한 컬럼들만 부를 수도 있습니다.
# object 컬럼빼고 추출
df.select_dtypes(exclude='object')
* df.select_dtypes 활용
이번엔 pd.get_dummies를 사용해서 'object' 컬럼을 카테고리 형태로 만들어 보겠습니다.
object 컬럼들을 select_dtypes를 활용해 모아주고 get_dummies 함수를 사용해서 원핫 인코딩 해주는 모습입니다.
object_col = df.select_dtypes(include='object').columns
df = pd.get_dummies(df,columns=object_col)
df
이렇게 해서 데이터 타입을 한번에 추출하는 법을 정리해보았습니다.
소개한 두 함수를 통해서 데이터타입 전처리 혹은 분석을 진행하면 좀더 편리할 것 같네요.
감사합니다!
'AI(시계열) > 데이터 전처리' 카테고리의 다른 글
[Pandas] 년,월,일 따로 있는 데이터 읽기 : parse_dates, date_parser, index_col (0) | 2023.01.08 |
---|---|
[전처리] 전처리 파이프라인 구축하기(1) (0) | 2023.01.07 |
[전처리] 시계열 데이터에서 train, validation, test 나누기 (0) | 2023.01.04 |
[Pandas] 시간데이터 전처리: datetime타입 형식변환 & 시간 차이 구하기 (0) | 2023.01.02 |