feat. pandas에서 자료형 변환 및 산술 연산
안녕하세요, 브래드입니다.
오늘은 파이썬으로 데이터 전처리하기 여덟 번째 시간으로 pandas에서 자료형 변환 및 산술 연산하는 과정을 함께 공부해보아요.
pandas에서는 astype('변환하려는 자료형')을 활용하여 데이터 자료형을 변환할 수 있습니다.
대표적인 pandas 자료형은 정수(int), 실수(float), 문자열(str), 일자시간타입(datetime)이 존재합니다.
위의 예시에서는 기존에 정수형(int)이었던 category_id 컬럼을 astype을 통해 문자형(str)로 변환해준 모습입니다. object는 문자형을 의미합니다.
이번엔 반대로 문자형을 정수형으로 변환해준 모습입니다.
이처럼 pandas 내에서 astype을 통해 자료형을 원하는 형식으로 변환해줄 수 있습니다.
datetime은 pandas에서 날짜와 시간 데이터를 처리하기 위한 자료형입니다.
datetime 자료형으로 변환하면 날짜 슬라이싱 및 시간 연산 등이 가능해집니다. 기본 사용법은 다음과 같습니다.
pd.to_datetime(df['컬럼명'])
위의 예시에서는 좋지 않은 예시이긴 하지만, category_id를 pd.to_datetime(df['category_id'])를 출력하여 datetime 타입으로 변환해준 모습입니다.
다음으로 datetime으로 변환 후 날짜 슬라이싱을 진행해보겠습니다.
먼저, 앞서 학습한 대로 pd.to_datetime(['컬럼명'])을 출력하여 datetime으로 변환한 후 df['컬럼명'].dt를 출력하여 날짜 슬라이싱 준비를 마칩니다.
그리고 연도 혹은 월, 일을 df['컬럼명'].dt.year / df['컬럼명'].dt.month / df['컬럼명'].dt.day 를 각각 출력하여 구해줄 수 있습니다.
또한, df['컬럼명'].dt.dayofweek를 출력하여 각각의 데이터의 요일을 구할 수 있습니다.
각각의 요일은 숫자로 표현되며 월요일 0, 화요일 1, 수요일 2, 목요일 3, 금요일 4, 토요일 5, 일요일 6으로 출력됩니다.
앞서 구한 년도, 월, 일 각각의 데이터를 다음과 같이 데이터 프레임에 추가하여 확인할 수 있습니다.
기존의 0000-00-00 형식의 데이터가 아닌 각각의 데이터로 분리하여 분석과 데이터 가공을 더욱 편리하게 진행할 수 있습니다.
pandas에서는 같은 타입의 자료형끼리의 산술연산만 가능합니다.
위의 예시에서는 정수형인 category_id 컬럼과 id컬럼 간의 합을 구해준 모습입니다. 마찬가지로 빼기, 곱셈, 나눗셈 등이 가능합니다. 또한 하나의 컬럼에 일괄 더하기 혹은 일괄 곱하기 등의 연산도 가능합니다.
합계, 평균, 최소/최댓값과 같은 통계연산도 가능합니다.
통계연산을 진행할 때 행 계산은 axis=0, 열 계산은 axis=1을 활용하여 계산해줍니다.
df.sum(axis=0)은 행 방향으로 모든 합계를 구해달라는 식입니다. 따라서 각각의 합계가 나온 것을 확인할 수 있습니다.
df.mean(axis=0)은 행 방향으로 평균을 구한 값을 출력해줍니다. 예시에서는 의류, 하의, 신발의 평균 가격을 확인할 수 있습니다.
지금까지 파이썬으로 데이터 전처리하기 여덟 번째 시간으로 pandas에서 자료형 변환 및 산술연산에 관해 함께 공부해보았습니다.
데이터 타입의 자유로운 변화를 익혀, 능숙한 데이터 전처리를 할 수 있도록 함께 노력해보아요.
브래드였습니다. 감사합니다.