본문 바로가기
Python/python_pandas 입문 [책]

[python_pandas 입문] 공부 # 6일차

by happy_bigdata 2021. 1. 20.

공부한 내용 (8장)

 - 자료형 다루기

 - 카테고리 자료형

 

 


# astype 메서드

 

# seaborn 라이브러리의 tips 데이터 불러오기

import pandas as pd

import seaborn as sns

 

tips = sns.load_dataset("tips")

tips['total_bill'] = tips['total_bill'].astype(str)  -> 자료형을 문자열로 변환하기

 

 

# to_numeric 메서드 -> errors 인자 


# raise : 숫자로 변환할 수 없는 값이 있으면 오류 발생
# coerce : 숫자로 변환할 수 없는 값을 누락값으로 지정
# ignore : 아무 작업도 하지 않음

# downcast : 정수, 실수와 같은 자료형을 더 작은 형태로 만들 때 사용

 

--------

tips_sub_miss = tips.head(10)  

  (+ 데이터의 훼손을 피하기 위해 새로운 변수에 데이터프레임을 저장)

tips_sub_miss.loc[[1, 3, 5, 7], 'total_bill'] = 'missing'

 

- missing이라는 문자열을 실수로 변환하는 방법을 모르기때문에

  total_bill 열의 데이터를 실수로 변환하려하면 오류 발생

   

1. tips_sub_miss['total_bill'].astype(float)
2. pd.to_numeric(tips_sub_miss['total_bill'])

------------

 

# ignore

tips_sub_miss['total_bill'] = pd.to_numeric(tips_sub_miss['total_bill'], errors='ignore')

print(tips_sub_miss.dtypes)

 

# coerce

tips_sub_miss['total_bill'] = pd.to_numeric(tips_sub_miss['total_bill'], errors='coerce')

print(tips_sub_miss.dtypes)

 

# downcast 

tips_sub_miss['total_bill'] = pd.to_numeric(tips_sub_miss['total_bill'], errors=coerce', downcast='float')

print(tips_sub_miss.dtypes)

 

# 카테고리 자료형

# 장점과 특징 

  - 용량과 속도 면에서 매우 효율적

  - 주로 동일한 문자열이 반복되어 데이터를 구성하는 경우에 사용

 

ex)

tips['sex'] = tips['sex'].astype('str')

print(tips.info( ))

tips['sex'] = tips['sex'].astype('category')

print(tips.info( ))

 

--> 데이터의 크기가 10.7+ 에서 9.1+로 줄어드는 것을 확인할 수 있음.

 

자료형을 자유 자재로 다루고, 또한 데이터 크기를 줄여가며 효과적으로 데이터를 사용하는 방법에 배우게 되었다.

꼭 필요한 메서드이니, 잘 숙지해야겠다고 생각하였다 : ) 오늘의 공부 끝

댓글