본문 바로가기

언어/Python

(34)
[Python] Python(파이썬)을 통한 인터넷 상의 데이터 활용 인터넷 상에서 데이터 활용 방법 인터넷 상에는 수많은 데이터 정보가 있다. 그리고 공개된 데이터들 중에서 아래와 같이 다양한 형식들을 읽어볼 수 있다. URL 상의 CSV CSV 파일을 local에 다운로드 받은 후에 pandas.read_csv(url)를 사용하여 읽어볼 수 있다. 또는 URL을 알고 있다면 지정해서 바로 넘겨줄 수도 있다. 크롤링을 사용하여 읽기 가공되지 않은 데이터를 처리할 때는 크롤링을 사용해야 한다. 파이썬의 requests/Selenium 라이브러리를 통해 처리한다. pandas.read_html(url, ...) 사이트에 따라 URL을 제공하는 경우 내부적으로 requests 라이브러리 활용하여 특정 웹 페이지의 dataframe을 반환받을 수 있다. pandas-datare..
[Python] Python(파이썬) Pandas 소개 및 자료구조 Pandas Pandas는 파이썬용 데이터 전처리 및 분석 라이브러리이다. 머신러닝에서도 데이터 전처리 수행의 비중이 80% 이상을 차지하며 Pandas의 필요성이 증가하고 있는 추세이다. 또한 프로그래밍 언어 R과 사용되는 부분이 비슷하다. 이러한 Pandas는 주요 자료구조로써 대표적으로 2가지가 있다. Series Series는 1차원 데이터를 표현한다. Index의 개념이 있다. Index는 파이썬의 리스트/튜플의 인덱스 및 사전의 key와 유사하다. 차이점으로는 같은 값의 인덱스를 중복 지정 가능하다는 점이다. 리스트 및 튜플로부터 시리즈를 만들 수 있다. 사전의 Key를 사용하여 새로운 시리즈를 만들 수 있다. Series의 인덱스는 아래와 같은 특성이 있다. 리스트/튜플의 인덱스 사전의 Ke..
[Python] Jupyter Notebook(쥬피터 노트북) 활용 Jupyter Notebook 사용 이유 웹 브라우저 기반의 python shell로서 이미지나 차트 등을 손쉽게 사용 가능한 장점이 있다. 실행되는 코드와 그에 대한 결과가 하나의 ipynb 파일로 저장되기 때문에 손쉽게 재실행 가능하며 동료와 공유 가능하다. 또한 웹으로 구동되기에 다른 컴퓨터에서 접속 가능하다. Jupyter Notebook 작업 환경 인터넷 익스플로어(=Internet Explorer)나 엣지(=Microsoft Edge)도 좋지만, 최신의 모질라 파이어폭스(=Firefox) 또는 크롬 브라우저(=Chrome)를 추천한다. 또한 쥬피터 노트북 사용 시 자동으로 사용하고자 하는 브라우저를 띄우기 위해서는 기본 브라우저 설정을 해줘야 한다. Jupyter Notebook 활용 쥬피터 ..
[Python] Python(파이썬) 데이터 분석 환경 구축 데이터 분석이란? 데이터를 적절하게 가공하여, 더 잘 이해하기 위해 정리하는 것. Excel에서도 데이터 분석이 가능하지만 파이썬을 활용하게 되면 Excel과 더불어 수많은 라이브러리를 통해 보다 효율적으로 분석 가능하다. Anaconda Python(아나콘다 파이썬) 과학 계산에 특화된 python 배포판이다. 아나콘다 파이썬을 설치하면 Pandas 라이브러리, Ipython, 쥬피터 노트북, Numpy 등 다양한 라이브러리가 설치된다. 따라서 데이터 분석을 할 때 훨씬 편리하게 환경 구축이 가능하다. 파이썬 설치 방법 및 주의사항 데이터 분석을 위해서는 아나콘다 파이썬 하나로 충분하기 때문에 기존 공식배포판이 설치되어 있으면 제거해야 한다. 또한 설치 시에는 환경 변수 옵션을 반드시 체크해야 한다. ..
[Python] HTML 문서를 BeautifulSoup으로 검색하기 soup 객체를 생성하고 HTML 문서를 출력(prettify) # HTML 문서의 데이터를 가져오기 위해 import from bs4 import BeautifulSoup page = open('sample.html', 'rt', encoding='utf-8').read() # HTML 파일 읽고 문자열 리턴 soup = BeautifulSoup(page, 'html.parser') # Soup 객체 생성 # Soup 객체를 이용하여 문서를 출력 print(soup.prettify()) BeautifulSoup은 HTML 문서 내의 데이터를 검색해서 작업하기 편리한 클래스이다. 위의 코드와 같이 HTML 문서의 데이터를 가져오기 위해 bs4 패키지 내부의 BeautifulSoup을 import 한다. ..
[Python] 웹 크롤링의 이해와 BeautifulSoup 설치 크롤링이란? 웹페이지에서 필요한 데이터를 추출하는 작업을 의미한다. 웹 크롤링을 하기 위해서는 1) pip 명령어로 BeautifulSoup 모듈을 설치하고 2) Html에 대한 기본적인 이해가 필요하며 3) CSS의 선택자에 대한 이해가 필요하다. BeautifulSoup란? 파이썬에 추가할 수 있는 크롤링을 위한 라이브러리이다. 결국, 웹에 있는 데이터를 가져와서 추출할 경우에 사용하는 외부 라이브러리로 추가 설치가 필요하다. 파이썬 개발환경에 새로운 모듈을 설치하려면 PIP(Python Install Package)를 이용하여 쉽게 설치가 가능하다. pip3 list는 설치된 목록을 볼 수 있다. pip3 install BeautifulSoup4는 새로운 패키지를 설치하는 명령어이다. pip3 un..
[Python] HTML문서를 BeautifulSoup과 re모듈을 사용(결합)해서 검색하기 re 모듈은 정규식 표현을 사용할 수 있다. 리스트로 태그를 나열하면 해당 태그들을 검색한다. lambda 함수를 정의해서 태그 속성이 2개인 경우만 정의한다. 태그 중에 align 속성이 center인 경우만 검색한다. 태그의 id 속성이 para로 끝나는 경우만 검색한다. HTML 속성을 생성해서 Class 속성만 검색한다. HTML 태그로 검색에 용이한 객체 만들기 from bs4 import BeautifulSoup doc = ['', \ 'This is paragraph one', \ 'This is a paragraph two', ''] soup = BeautifulSoup(''.join(doc), 'html.parser') #태그를 정렬해서 보여주기 print(soup.prettify()) ..
[Python] Python(파이썬) 시스템과 랜덤함수 Sys 모듈 함수 설명 argv 명령행 인자 getrefcount 참조 개수 반환 path 파이썬의 PATH stdin, stdout, stderr 표준 입력, 출력 에러 객체 exit 스크립트 종료 import sys print(sys.argv) my = sys.argv print(my[1]) 예제 코드와 같이 sys를 수행하기 위해선 명령 인자를 받아야 한다. C언어에서는 argc, argv를 받는데 그 부분과 같은 기능이다. 명령 프롬프트로 출력 결과를 확인할 수 있다. 그리고 출력 결과와 같이 argv에 들어간 리스트의 1번 인자는 aa인 것도 확인 가능하다. import sys myList = [10, 20, 30] print(sys.getrefcount(myList)) 참조 개수를 구하는 함수..