블로그 이미지
잡다한 취미 생활 및 일상에 대한 소소한 이야기를 적어나가는 블로그입니다.
붉은kkk

공지사항

최근에 올라온 글

최근에 달린 댓글

글 보관함

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

*주피터 노트북이란?

Jupyter Notebook은 라이브 코드, 방정식, 시각화 및 설명 텍스트가 포함 된 문서를 작성하고 공유 할 수있는 오픈 소스 웹 응용 프로그램입니다. 데이터 정리 및 변환, 수치 시뮬레이션, 통계 모델링, 데이터 시각화, 기계 학습 등의 용도로 사용됩니다.

 

 

사용을 위해 주피터 노트북을 설치할 수 있는 방법을 찾아봅시다.

우선 사이트 접속을 해보세요.

jupyter.org

주피터 노트북 사이트
사이트내 사용법 설명

 

어... 이것도 pip으로 설치해서 쓰면 되는 거였네요.

 

pip install jupyter로 설치해줍니다.

설치가 완료되면 cmd창에서 jupyter notebook을 입력하여 실행해 주세요.

 

주피터 노트북이 실행된 화면입니다.
우측 상단의 New file - Python3을 선택한 화면입니다.
기본적인 연산자를 사용하여 주피터 노트북에서 실행시킨 화면입니다.

 

주피터 노트북을 설치하고 실행 후 기본 연산자를 사용한 파이썬 코딩도 완료해보았습니다.

 

사용된 기본 연산자는 아래와 같습니다.

덧셈 (+), 뺄셈 (-), 곱셈 (*), 제곱 (**),  나눗셈 (/), 나머지 (%)

 

기본 제공되는 IDLE 편집기로 코딩하는 것보다 보다 직관적인 모습입니다. 

(한줄 한줄 실행도 가능하며, 입력된 코드와 결과가 바로 보이고 있습니다.)

 

이로써 주피터 노트북 설치도 완료 되었네요. 

오늘도 즐거운 파이썬 생활 되세요^^

Pandas는 데이터 분석용 오픈 소스 라이브러리입니다.
Python Data Analysis Library
https://pandas.pydata.org/

 

Python Data Analysis Library — pandas: Python Data Analysis Library

Python Data Analysis Library pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language. pandas is a NumFOCUS sponsored project. This will help ensure t

pandas.pydata.org

이 글을 쓰는 시점엔 0.251 버전이 릴리즈 되어 있네요.

 

이번에 연습해보려고 하는 데이터 분석은 아래 2가지 형태입니다.

(기능적으로는 크게 3가지로 구분됩니다. - 파일 읽기, 필터링, Plot 그리기)

 

1. 엑셀 or CSV 파일 읽고 Plot 그리기                                 

2. 엑셀 or CSV 파일 읽고, 원하는 형태로 필터링 후 Plot 그리기

 

하나하나 차근히 코드를 작성해보겠습니다.

 

우선 엑셀 데이터를 준비해주세요.

전 간단하게 아래와 같은 테이블을 만들었습니다.

엑셀 파일 또는 csv파일로 저장해주세요. 전 test.csv파일로 저장했습니다.

 

1. 엑셀 or CSV 파일 읽고 Plot 그리기                                 

- Pandas 라이브러리를 pd로 쓰겠다고 import 한 다음, 미리 만들어둔 csv 파일을 읽는 코드입니다.

- *cp949 : 한국어판 마이크로 윈도우즈의 기본 코드 페이지, 한글 인코딩의 한 종류로 EUC-KR의 확장형이다.

              '통합 완성형' 이나 '확장 완성형' 이라고도 한다.

- *utf-8 : UTF-8 방식은 대표적인 조합형의 유니코드 인코딩 방식
-----------------------------------------------------------------------------------------------------------------------------------

import pandas as pd

 

data = pd.read_csv('data/test.csv', encoding='cp949')

print(data)

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

파일 읽기 완성

 

 

그래프는 잘 나왔는데... 한글이 깨졌네요.

한글이 제대로 나오게 하려면 아래와 같이 코드를 추가해 줍니다.

...??? 되어야 하는데. 안되네요. 오늘은 여기까지만 포스팅 하겠습니다.

 

이번엔 PDF파일에서 텍스트 내용을 발췌하는 방법에 대해서 연습을 해볼게요.


회사 업무를 하다 보면 종종 PDF로 되어 있는 문서에서 텍스트를 가져오고 싶은데, 

원활하게 복사가 되지 않았던 경험이 다들 한번 씩은 있을 거에요.


그 불편함을 해소하고자, 전체 텍스트 부분을 뽑아내서 텍스트 파일로 저장하는 프로그램을 만들어 볼 겁니다.

(PDF파일에서 내용을 보고 정리하는 작업이 많을 때는 유용할 거 같네요^^)



1. 준비물

   - JDK (JAVA Development Kit) 

    - Tika 

      : PDF에서 텍스트를 뽑아낼 수 있게 해주는 라이브러리 

        (자바로 작성된 거 같네요, 이 라이브러리를 사용하기 위해서 JDK가 필요하답니다.)

    - 텍스트 추출할 PDF파일 (sample.pdf)

   → JDK 설치 과정은 생략할게요. 



2. Tika 라이브러리 설치

   - pip install tika 

     : 이걸 먼저 해주시고... 이것만 하면 끝이날 것 같았는데, 피곤한 과정이 남아 있네요. 

      (제 PC에서만 그런걸 수 도 있는데, 우선은 다 알려드리겠습니다.)


    - Source code 작성

     

      #-*- encoding:utf-8

      from tika import parser

      print("텍스트 파일을 추출할 PDF파일명을 입력하세요.")

      PDFfileName = input()


      print("텍스트 파일은 다음 폴더에 저장됩니다.")
      print("D:\data")

      inputpath = PDFfileName


     parsed = parser.from_file(PDFfileName)
     print(parsed["content"])

     fileOut = open('fileOut.txt', 'w', encoding='utf-8')

     print(parsed['content'], file=fileOut)

     fileOut.close()

   

     Source code는 본인이 직접 타이핑 해보면서, 한줄 한줄 왜 이렇게 작성되어 있는지 

         고민해보시면 될 거  같습니다. 어렵지 않으니 따로 설명은 하지 않을게요.

         (보시면 필요없는 라인도 있고 하니까, 자기 입맛에 맞춰서 만들어 주시면되요, 

          중간 중간 보이는 인자들은 어떤건지 궁금하다면 그 해당 명령어 or 함수에 대한 내용을 검색하면

          친절한 설명을 찾아볼 수 있답니다.

          영어 검색을 추천드려요^^)

      

음... 문제가 있네요. 


에러내용

1) Retriving http://search....\tika-server-1.19.jar to ...\temp\tika-server.jar.md5

2) Retriving http://search....\tika-server-1.19.jar to ...\temp\tika-server.jar


3. 문제 해결

    - 2개의 에러가 발생했어요. 

       느낌적으로 tika-server-1.19.jar파일을 복사하려는거 같은데 뭔가 잘 되지 않은거 같네요.

       제가 해결한 방법은 직접 서버로 찾아가서 (http:// 주소를 입력) tika-server-1.19.jar 파일을 다운로드

       했습니다.

       그 후에 복사하려던 폴더에 복사를 하고 이름도 똑같이 바꿔줬어요.

       tika-server-1.19.jar → tika-server.jar

       (tika-server.jar.md5는 생략했습니다. jar파일만 복사시 작동이 되서 굳이 하지 않았어요)


4. 프로그램 수행

    - 이제 미리 준비해 둔 sample.pdf의 텍스트 내용을 추출해서 파일로 만들어 볼게요.

    - Sample.pdf의 내용은 아래와 같습니다.

 

[Sample.pdf 내용]

    


    - 프로그램 수행 결과 : 에러가 사라지고 동작이 잘 됩니다.


[프로그램 수행결과]


    - 추출한 내용이 쉘에서 보이지 않는 것 같았으나, 스크롤바를 내려보니 잘 추출된 걸 확인 할 수 있었습니다.

     (성공입니다^^)

    

 

    - 파일도 만들라고 프로그래밍을 했었으니까, 잘 만들어졌는지 확인 해 볼게요.


(폴더에 fileOut.txt가 생성되어 있네요, 이것도 성공^^)


파일내용도 문제가 없는 것을 확인했습니다.  성공적이네요^^


다음에 또 재미난 내용으로 찾아올게요.


웹크롤러는 과정이 길어질것 같아서 중간중간 다른 포스팅도 섞어가면서 연습을 하도록 할게요.


이번 시간엔 그간 아쉬웠던 파이썬의 GUI 프로그래밍 관련된 내용입니다.



지금까지 파이썬 프로그래밍을 연습해보면서 console에서만 실행 되는 모습이 조금 아쉬웠습니다.


그래서 찾아보니, 윈도우 GUI 디자인툴이 있더군요.


PyQt5라는 크로스플랫폼을 통해서 윈도우 GUI를 꾸밀 수 있다는 걸 확인했습니다.

- PyQt is a set of Python v2 and v3 bindings for The Qt Company's Qt application   

  framework and runs on all platforms supported by Qt including Windows, OS X, Linux,   

  iOS  and Android



설치해보고 직접 연습을 해봐야겠죠?


- 다운로드 사이트 주소 : https://www.riverbankcomputing.com/software/pyqt/download5



소스 패키지를 다운로드 해도 되고, 기존에 라이브러리 설치하듯 PyQt를 설치해도 됩니다.


PyQt를 설치했으니, 예제를 하나 작성 해 볼게요.

Hellow world 출력을 버튼으로 만들어 보겠습니다.



완성입니다.


윈도우 GUI 작성이 잘 되네요. 

아직 코드로 만들어내야되서 조금 불편한 부분이 남아있습니다. Qt 디자이너 툴이라는 것도 있는거 같으니까

다음엔 그것도 알아봐야겠네요.


다음 포스팅으로 뵐게요.



파이썬으로 만든 프로그램을 파이썬이 없는 곳에서도 실행하고 싶다면, 단독 실행파일로 만들어 줘야 됩니다.


오늘은 파이썬 응용 프로그램을 .exe 파일 (실행파일) 로 만들어 보겠습니다.


우선 필요한 건 아래와 같은 라이브러리에요.



    Pyinstaller 

  py2exe



구글링으로 찾은 라이브러리인데, py2exe는 python2 버전에서 잘 된다라는 내용들이 적혀 있네요.

전 3.7 버전을 사용하고 있는 관계로 Pyinstaller로 실행파일을 만들어 보겠습니다.


실행 파일로 만들 프로그램은 지난 시간에 만들었던 워드클라우드 파일이어서 따로 코딩은 하지 않겠습니다.



pip으로 라이브러리를 설치하고, (설치는 pip install pyinstaller)

처음에 설치를 잘 못한 게 있었네요. (오타로 인해 pip install pyinstall, 이건 나중에 삭제해야겠네요.)



다 끝나 갑니다.


이제 실행파일을 만들어 봐야겠어요.



pyinstaller --onefile <your_script_name>.py 이렇게 하면 된다고 되어있네요. 지난 시간에 만든 wordcloud1.py에 적용해서 해보니까... 안됩니다 ㅠㅠ (다른방법을 찾아봐야 겠네요) 우선 가볍게 Hello World 소스 부터 실행 파일로 만들어 볼게요. 실행은 pyinstaller ex1.py (ex1.py는 첫시간에 만들어 둔 파일입니다.)

소스로는 고작 1줄인데 뭔가가 엄청...진행 됐어요.

새로운 폴더가 만들어져 있네요. (build와 dist) dist폴더내에 ex1폴더가 있고 그 곳에 실행파일이 만들어져 있는걸 확인했습니다.

윈도우에서 실행하면 console창이 떴다가 사라지네요.

console모드에서는 잘 실행되는걸 확인할 수 있습니다.





이번엔 이렇게 파이썬에서도 실행파일을 만들 수 있다란 것을 알았단 사실에 만족해야 될 것 같네요.

계속 공부하면서 더 간단히 깔끔한 exe 파일 만드는 방법을 새로 찾아보고 새로운게 있다면 다시 포스팅 해 볼게요.





이제 드디어 제가 파이썬을 사용하고자 한 계기가 됐던 워드 클라우드 만들기 입니다.


빅데이터 분석에 대한 책 & 광고 등을 보다 보면 빠지지 않고 등장했었던 것 같아요. 


시각적으로 바로 알기 쉽게 한번 보여드리고~


이렇게 단어의 빈도수 등을 고려해서, 글자의 크기, 색깔 등등이 강조되서 나오는게 워드 클라우드입니다. 


휴... 한글폰트의 사용이 어려워서 고생했던 생각이 잠깐 나네요. (몇시간을 헤맸습니다...)


이제 윈도우환경에서 워드 클라우드를 구현하기 위해 해야될 일들을 하나 하나 알려드릴게요.


1. 네이버 나눔글꼴 설치

https://hangeul.naver.com/2017/nanum

위 링크로 들어가서 네이버 나눔글꼴을 설치해줍시다. (무료 폰트여서 사용하는데 문제가 없답니다.)

- 나눔글꼴의 지적 재산권은 네이버, 네이버문화재단에 있으며,  오픈 라이선스로 자유롭게 수정하고 재배포 하실 수 있습니다



2. 워드클라우드 라이브러리 설치

     pip install wordcloud

     - pip 설치는 지난 시간에 설명을 했기 때문에, 상세 내용은 생략할게요. 

       

     http://nearman.tistory.com/entry/3-그래프출력-파이썬-matplotlib-그래프-출력-한글폰트-사용 

     


3. 워드클라우드로 표현하고 싶은 텍스트 자료 준비

   - 저는 test.txt 파일에 내용을 기입해서 준비를 해볼게요.

     "워드 클라우드 파이썬 단어구름 빅데이터 분석
      Wordcloud python big data analysis 워드클라우드 워드클라우드 워드클라우드 

      python python python python
     워드클라우드 워드클라우드 워드클라우드 워드클라우드 워드클라우드 워드클라우드 워드클라우드 

     워드클라우드
     python python python python python python python python python python python python python   

     python"

   

4. 코딩을 통해 워드클라우드 표현

   - 코드 몇 줄 되지 않습니다. 너무 간단해서 이래도 되나 싶을 정도네요.


1: import matplotlib.pyplot as plt
2: from wordcloud import WordCloud

3: 
4: font_path = 'c:\\windows\\fonts\\NanumGothic.ttf'
5: wordcloud = WordCloud(
6:     font_path = font_path,
7:    width = 800,
8:    height = 800
9:    )
10:
11: text=open('test.txt').read()
12: wordcloud = wordcloud.generate(text)
13: 
14: fig = plt.figure(figsize=(12,12))
15: plt.imshow(wordcloud)
16: plt.axis("off")
17: plt.show()
18: fig.savefig('wordcloud_without_axisoff.png')


코드는 크게 설명드릴 부분이 없을 정도로 직관적으로 이해하실 수 있을 거라 생각되네요.


'라이브러리를 사용할 수 있게 하고

Font 설정을 하고

Text 파일을 읽고

wordcloud를 사용해서 화면에 부려주고

파일로 저장합니다.'




 [최종 실행 화면]

이로써 워드 클라우드 구현을 해보았습니다.


다음엔 더 재밌는 걸로 찾아뵐게요.

파이썬 3.7 설치를 완료하였습니다.


이제 모든 프로그래밍 언어의 첫 시작인 "Hello World" 를 출력해 봐야겠어요.


파이썬을 설치하고 나면, IDLE이라는 아이콘을 실행하여 아래와 같은 창을 띄울수 있어요.

파이썬 언어는 인터프리터언어로 1줄, 1줄 직접 치면서 실행해 볼 수 있습니다.

(파이썬을 처음 접했을때 느낌은, 어릴때 접했던 베이직과 비슷한 느낌이었어요.)

자, 그럼 Hello World를 출력해 봐야겠죠?

출력 명령어는 역시 Print 였습니다 ㅎㅎ


>>> print("Hello World")


출력이 잘 되네요.



파이썬에게도 인사를 해보겠습니다.


>>> print("Hello Python")

잘 동작되는 것을 확인했으니 다음번엔 좀 더 난이도를 높여 보도록 하겠습니다.


워드클라우드 기능을 구현해서 빅데이터 분석이 다음번 목표입니다. 

[1. 설치] 파이썬 시작합니다.

2018. 12. 7. 06:54 | Posted by 붉은kkk

파이썬을 이제 접해보려고 해요.


요즘 자동화 도구, 빅데이터 분석을 파이썬으로 많이들 한다고 해서 공부해보려고 합니다.


우선 설치부터^^


1. 파이썬 홈페이지에 접속합니다.

https://www.python.org/

2. 자신의 운영체제에 맞는 버전을 설치해줍니다.

- 2.X버전과

- 3.X버전 2가지의 버전이 있는데 저는 우선 3.X만 설치해서 공부해 볼 예정이에요.

이렇게 자신에게 맞는 운영체제 버전으로 설치를 하면 됩니다.


다음엔 공부하면서 익힌 것들을 하나씩 올려보도록 하겠습니다.



이전 1 다음