스파르타 코딩 클럽의 강의 '데이터 분석 종합반 8회차' 수업을 듣고 정리한 것

 

1. 기초

엑셀로 자료분석하기

구글 스프레드시트에 XL miner analysis 플러그인 사용하면 기본 엑셀보다 좀 더 특화된 자료분석 가능

 

데이터분석 5단계

크롤링-클리닝-탐색-모형-전개

 

Colab 사용법

# 혹은 내용 앞 줄에 ''', 내용 다음 줄에 ''' : 코드가 아니라 메모로 인식

print( ) : 괄호 속 내용 출력

shift+enter : 칸바꿈

ctrl+enter : 실행

intend: 들여쓰기. tab 혹은 스페이스 네 번

 

파이썬 기초

자료형

int정수, float실수, str문자, list목록

    type(알아보고 싶은 대상): 대상의 자료형이 무엇인지 알 수 있음

 

list 조작법

listname1 = [z,x,c,a,s,d,q,w,e,...... ]

listname1.append(6) : 6이라는 원소를 listname1 리스트에 추가하기

listname1.extend(listname2) : listname2라는 리스트를 listname1에 추가하기

 

반복문/조건문

for 각각의 데이터 in 전체 데이터 :

if 조건, elif 조건, else :

     반복문과 조건문 뒤에는 반드시 :를 입력하고 줄바꿈을 해줘야 함

 

함수 정의하기

def name (인자1, 인자2, ... , 인자n)

    return 인자를 이용한 함수

까지 입력하면 함수 완성

 

클래스와 인스턴스

클래스: 어떤 세부적인 양식틀을 가진 객체의 명칭.

(예를 들어 몬스터가 체력과 스테미나를 포함하도록 정의되어 있다면 몬스터는 클래스)

인스턴스: 객체

(예를 들어 slime = Monster() 라고 코드를 짠다면 slime은 Monster라는 클래스 형식을 포함한 객체로 정의됨)

 

try문과 except문

try:

    print(a/b)

except:

    print('오류')

try 밑에 있는 명령을 실행해보고 오류가 발생했을 시 except 밑에 있는 코드를 실행하라는 의미

 

판다스 데이터프레임 조작법

패키지란? 누군가가 이미 만들어놓은 클래스, 함수 덩어리. 판다스도 패키지

1) pandas로 표 만들기

import pandas as pd

데이터 이름={'행 이름1' : [list1], '행 이름2' : [list2], ..., '행 이름n' : [listn]}

df = pd.DataFrame(데이터 이름)

df

2) 데이터 프레임 2개 합치기

pd.concat([df1, df2])

 

엑셀파일로 추출하기

객체명.to_csv('파일이름', index=false)

(index=false는 데이터프레임 작성시 자동으로 생성되는 인덱스열을 지우고 저장하라는 의미)

 

엑셀 파일 불러오기

새로운 객체명 = pd.read_table('파일이름', sep=' , ')

 

2.크롤링 기초

html문서의 구성

웹사이트는 기본적으로 html 문서

태그: <head>, <body>, <a>, 등 html 문서 각 항목의 구조와 특성을 알려주는 이정표

선택자(selector) : id, class, 등

 

웹사이트 분석 기초

f12를 누르면 개발자 도구를 실행시켜 해당 사이트의 html을 코드문서 형태로 볼 수 있음

좌측 상단에 커서 아이콘을 누르면 내가 알고자 하는 객체가 어떤 코드에 대응되는지 탐색할 수 있음

우클릭 - 복사 - selector를 누르면 구체적인 내용은 제거하고 선택자 형식만을 추출해낼 수 있음

 

크롤링 기본 코드 이해

!pip install beautifulSoup4

#colab에는 기본 설치되어있음

from bs4 import BeautifulSoup

soup=(html, 'html.parser')

#html 문서를 분석해서 html 자료 형태로 읽어오기

soup=(data.text, 'html.parser')

#html 문서를 분석해서 텍스트 형태로 읽어오기

print(soup.select( ))

#어떤 입력값에 해당하는 애들만 추출하기

#('태그명'), ('.클래스명'), ('#아이디'), ('상위태그명 하위태그명'), ('상위태그명 > 하위태그명')

.text

#해당 작업을 텍스트 부분만 읽어오기

.text[0, n]

#해당 작업을  n-1번째 글자까지의 텍스트 부분만 읽어오기

.strip()

#출력된 내용에서 쓸데없는 띄어쓰기 삭제하기

 

newspaper3k 패키지

신문자료 크롤링할 때 쓰는 패키지

!pip install newspaper3k

from newspaper import Article
url = '뉴스 기사 페이지 주소'
article = Article(url, language='ko')
article.download()
article.parse()

print(article.title)

print(article.text)

 

크롤링 차단 시

headers = {'에이전트 정보'}

news = requests.get(url, headers=headers)

참고: https://hogni.tistory.com/64

 

크롤링이 차단되었다면 유저 에이전트(User Agent)를 지정해보자, 크롤링 차당 방지법

크롤링을 하다 보면 종종 페이지에서 아무것도 받아오지 못해서 막히는 경우가 생깁니다. 여러 가지 이유가 있을 수 있겠지만 본인이 잘못한 게 없다면 대개 서버에서 차단을 당했기 때문입니

hogni.tistory.com

 

+ Recent posts