본문 바로가기

분류 전체보기30

[멋사] AI SCHOOL 5기_ Day 16 NumPy NumPy(Numerical Python)는 거의 모든 과학 및 공학 분야에서 사용되는 오픈 소스 파이썬 라이브러리다. NumPy 라이브러리에는 다차원 배열 및 행렬 데이터 구조가 포함되어 있다. import numpy as np # 보통 이렇게 np 로 줄여 사용한다 # 배열(Array) 만들기 v1 = np.array([ 1, 2, 3, 4, 5 ]) # array 내부 아이템의 데이터 타입을 알고 싶다면?! v1.dtype numpy array에는 서로 다른 데이터 타입이 들어갈 수 없다!! (리스트와 다른 점) # 행렬 만들기 matrix = np.array ([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) # 모양 확인 matrix.shape # 2열 전체 - [행,.. 2022. 3. 29.
[멋사] AI SCHOOL 5기_ Day 15 Web scraping Tips 1️⃣ 오류 예외 처리 다량의 데이터를 수집하기위해 크롤링을 하다보면 예상치 못한 일로 에러가 나서 중단되어 버렸을 때 이미 쌓아왔던 데이터가 날라가거나 혹은 특정 시점 이후로 데이터가 꼬여버리는 일이 생긴다. 그럴 때를 위해 사용하는 것이 try, except 문이다. try: # 일단 실행해 볼 코드 except: # 오류가 발생했을 때 수행할 코드 2️⃣ time.sleep() 크롤링을 하면서 쉴틈없이 서버에 요청을 보내면 기계인걸 눈치채서 막아버리는 경우가 생긴다. 그래서 time.sleep을 이용해 잠시 작동을 쉴 수 있게 해줘야한다. 3️⃣ pickle 파이썬은 객체를 파일에 저장하는 pickle 모듈을 제공한다. 거의 모든 것을 피클로 저장하고, 불러올 수 있.. 2022. 3. 28.
[멋사] AI SCHOOL 5기_ Day 12 The process of data analysis for text data Tokenize → POS Tagging → Stopwords 제거 →단어사전 생성 → 사전 기반 데이터 시각화 → 머신러닝/딥러닝 모델 적용 NLTK NLTK는 Natural Language Toolkit의 약자로, 자연어 처리 및 문서 분석용 파이썬 패키지다. (자연어는 일상적인 생활에서 사용하는 언어를 말한다) 분석을 위해서는 긴 문자열을 작은 단위로 나눠야 하는데, 이 단위를 token(토큰)이라 하고 그 작업을 tokenizing(토큰 생성)이라고 한다. word_tokenize() 를 사용하면 문장을 토큰화할 수 있다. 품사(POS, part-of-speech) pos_tag() 를 사용하면 토큰화한 문장을 대상으로 .. 2022. 3. 25.
[Python] 파이썬 크롤링, 웹 스크래핑 예제 - 네이버 영화 (코코) 리뷰(BeautifulSoup, Pandas) 네이버 영화 사이트에서 코코(Coco)의 관람객 평점과 한줄평을 총 100개를 긁어와 엑셀 파일로 저장하는 코드다. https://movie.naver.com/movie/bi/mi/basic.naver?code=151728 코코 뮤지션을 꿈꾸는 소년 미구엘은 전설적인 가수 에르네스토의 기타에 손을 댔다 ‘죽은 자들의 세상’에 ... movie.naver.com 해당 사이트에 접속한 뒤, "평점"을 클릭해 긁어와야하는 데이터인, 평점과 한줄평을 살펴보았다. 한 페이지당 10개씩 리뷰가 달려있었는데, 중요한건 페이지 하단의 버튼을 눌렀을때 전체 url 주소가 달라지지 않았다. 그래서 인스펙터(크롬 개발자도구)를 가지고 살펴봤는데 페이지 버튼의 href가 눈에 띄었다! 하이퍼링크의 마지막 옵션인 page 값으.. 2022. 3. 24.
[멋사] AI SCHOOL 5기_ Day 11 데이터 시각화(Data visualization) GeoJSON GeoJSON(지오제이슨)은 JSON(JavaScript Object Notation)에 기반한 지리 공간 데이터 교환 포맷이다. 지리 좌표 참조 시스템인 World Geodetic을 사용한다. https://geojson.org/ GeoJSON GeoJSON GeoJSON is a format for encoding a variety of geographic data structures. { "type": "Feature", "geometry": { "type": "Point", "coordinates": [125.6, 10.1] }, "properties": { "name": "Dinagat Islands" } } GeoJSON supp.. 2022. 3. 24.
[멋사] AI SCHOOL 5기_ Day 10 Pandas(판다스) 인덱스 설정 데이터프레임의 column(열)을 index로 가져오고 싶을 땐, df.set_index('열 이름', inplace=Ture) 로 사용한다. 설정했던 인덱스를 초기화하고 싶을 때는 df.reset_index(inplace=True)를 사용한다. 그런데 만약 인덱스로 설정하려는 열 값의 중복이 있다면 pivot_table을 추천한다. pd.pivot_table(데이터프레임, index='열 이름', aggfunc=np.sum) 결측치(N/A) 값 채우기 NaN(숫자가 아님) 타입의 결측치를 특정 값으로 채우고 싶을 때는 df.fillna('원하는 값')를 사용한다. 조건 검색 df[ (df['열 이름1'] 100) ] 두개 이상.. 2022. 3. 23.