본문 바로가기

프로그래밍 공부/코드프레소 교육

[코드프레소XAI양재허브]AI/ML 기초교육 4일차 (2)

반응형

안녕하세요.

26년차 진로탐색꾼 조녁입니다!

 

4일차에 배운 내용 중에 두 가지 추가 포스팅 하고 싶어서 4일차 (2)로 포스팅합니다! 

4일차  파이썬_Pandas와 Numpy에 대한 첫 포스팅은 아래 주소 확인해주세요~

jonhyuk0922.tistory.com/6

 

[코드프레소XAI양재허브]AI/ML 기초교육 4일차 (1)

안녕하세요. 26년차 진로탐색꾼 조녁입니다! 패기롭게 3일차까지 가봤지만!! 4일차부터 내용이 너무 많아서 (핑계) 이제야 다시 포스팅을 시작합니다!! 3일차 기초 강의는 아래 주소 확인해주세요

jonhyuk0922.tistory.com

 

4일차 지난 포스팅 복습 겸 Pandas 와 Numpy 의 몇 가지 특성만 정리하고 넘어가겠습니다.

-Pandas를 통해 우리는 DataFrame 형태의 데이터를 다룰 것이다. 이 떄  pandas' object == python's string 

-코딩을 시작하기 전 필요한 라이브러리를 import하고 시작한다. 

-데이터를 불러온 다음, shape 과 dtype을 확인해본다. 또는 info 나 describe를 통해 확인할 수도 있다.

-[]의 개수 만큼이 차원이고, reshape을 통해 차원도 바꿀 수 있다.

 

4일차 추가 내용

+) csv 다운로드 받고 전처리해보기

+) 데이터 시각화 해보기

 

Step1. csv 다운로드

우선, csv 데이터를 불러오기 위해 다운로드부터 차근찬근 해보겠습니다.

저는 구글에서 제공하는 Colab을 사용 중이라 제 코드가 일단 쥬피터나 다른 IDE와 다를 수 있습니다.

 

from google.colab import files                 

uploaded = files.upload()

review_df = pd.read_csv("review.csv")

 

print(review_df.shape)

review_df

Step2. 원하는 부분만 꺼내보기

참고] #bool data #참 거짓 여부 나와야함 

예시) a = 3 ; a == 2  >>> False  : 이때 , T/F 의 data  type 이 bool data.

 

review_df[review_df['사용자'] == '박진형'

=> review_df['사용자]=='박진형' >>> index 1 에 해당되는 값만 True가 나옴

=> 나온 값을 다시 review_df에 넣으면 True에 해당되는 index 1에 해당되는 행만 출력.

user_list =['박진형','최진강']

review_df[review_df['사용자'].isin(user_list)]

review_df[review_df['리뷰'].str.contains("위치|시설")]

review_df[review_df['리뷰'].str.contains(r'(?=.*위치)(?=.*시설)')]  #regex == regular expression

 

Step3. 자료 전처리하기

ㄱ. str -> int로 바꾸기

review_df['평점'] = review_df['평점'].apply(lambda x:                     #lambda 함수는 1회용 함수

                                                                      int(x.replace('점',' ')))  #apply 가 pandas에서 젤빠름

int('8점'.replace('점',''))    :  "점" 을 "  "로 대체!

>>> 8

review_df['평점'].mean()     #str이었던 8점을 Int인 8로 바꿔서 mean값 보기 용이

>>> 8.75

ㄴ. 오타 수정하기

review_df['리뷰'] = review_df['리뷰'].str.replace('채크인','체크인')

 

ㄷ. str 나누기

review_df['리뷰'].str.split(" ") ------> 어떤 단어가 많이 나왔을 때 평점이 어떠했는 지 확인

review_token = review_df['리뷰'].str.get_dummies(sep=" ")

review_token

review_token['만족한'].sum()         # 위와 같이 단어를 나눈 후 합계와 길이를 통해 빈도 확인할 수 있다.

review_df['리뷰'].str.len()

 

데이터 시각화하기

import numpy as np

import matplotlib.pyplot as plt

array = np.arange(16).reshape((4,4))

%matplotlibinline                         #시각화된 그래프를 별도창이 아닌 현재창에 띄워달라는 의미

import matplotlib.pyplot as plt

plt.plot(array, 'o')

plt.show()

 

array = np.random.rand(10000)              #랜덤으로 1이하 숫자 10000개로 구성된 array 생성

print(array)

plt.hist(array)

plt.show()

array = np.random.randn(10000)

print(array)

plt.hist(array, bins=100#bins 는 세밀하게 만들어준다.

plt.show()

이상으로 4일차가 드디어 끝났습니다..

 

읽어주신 모든 분들께 감사드립니다!!!

반응형