'Data Analysis/Python' 카테고리의 글 목록 :: Hello Data

Pandas의 DataFrame을 출력하면 Row와 Column이 모두 보이지 않는다.

해당 Limit 값 확인하고 변경하는 방법을 알아본다.

 

 

열(Column)의 출력 Limit 값 확인

pd.get_option("display.max_columns")

20개 컬럼까지 출력가능하고 그 이상의 컬럼 출력을 시도하는 경우 중략된 상태로 화면에 보여진다.

 

열(Column)의 출력 Limit 값 변경

pd.set_option("display.max_columns", 150)

 

 

 

행(Row)의 출력 Limit 값 확인

pd.get_option("display.max_rows")

60개 행까지 출력가능하고 그 이상의 행을 출력하려고 하면 중략된 상태로 화면에 보여진다.

 

 

 

행(Row)의 출력 Limit 값 변경

pd.set_option("display.max_rows", 200)

Seaborn Heatmap 옵션 참고.

https://seaborn.pydata.org/generated/seaborn.heatmap.html

 

결과.

 

코드.

import seaborn as sns
import matplotlib.pyplot as plt

sns.set(rc={'figure.figsize':(12,12)})
sns.heatmap(train_df.corr(), annot=True)

 

Python에서는 코드 개발 시 독립적인 가상 환경을 이용하는데

 

해당 가상 환경을 Jupyter에 연결하여 사용하면 코드 개발에 편리하다.

 

본 가이드에서는  가상환경(Virtualenv)을 Jupyter에 연결하여 Kernel을 추가하는 방법을 알아본다.

 

테스트를 위한 가상 환경을 생성한다.

2020/03/14 - [Python] - [Python] VirtualEnv로 파이썬 가상환경 구성하기

 

가상 환경 활성화

 

Jyputer Kernel 추가를 위한 ipykernel 설치

pip install ipykernel

 

Jupyter Kernel 추가

추가할 가상환경과 Jupyter에 Display할 이름 지정하고 명령어를 수행한다.

python -m ipykernel install --user --name 가상환경이름 --display-name 화면에보여질이름

 

예제.

python -m ipykernel install --user --name .venv --display-name test_venv

 

 

Kernel 추가하기 전 Jupyter 화면

2020/03/14 - [Python] - [Python] Jupyter Notebook 설치 및 사용법

 

 

Kernel 추가한 후 화면. 정상적으로 추가되면 아래와 같이 추가된 Kernel이 보인다.

 

Jupyter Notebook 오른쪽 상단에 Kernel명을 확인한다.

 

Jupyter Kernel 삭제

jupyter kernelspec uninstall .venv

 

 

 

 

 

Python에서 예시와 같이 Sample Dictionary이 주어졌을 때

{'A': 12, 'B': 52, 'C': 23, 'D': 46, 'E': 27}

Key와 Value의 위치를 변경하여 아래와 같이 바꾸고 싶다면

{12: 'A', 52: 'B', 23: 'C', 46: 'D', 27: 'E'}

 

 

Dictionary Comprehension을 활용하면 쉽고 간단히 진행할 수 있다.

참고로 Dictionary Comprehension은 Python3에서 지원되며 Python2에서는 지원되지 않는다.

{v:k for k, v in sample_dict.items()}

 

Python에서 Dictionary를 정렬하려할 때 sorted를 이용해서 할 수 있다.

iterable은 정렬할 대상인 Dict이 되고 key는 정렬 기준, reverse는 오름차순(default)/내림차순 여부로 이해하면 쉽다.

 

Sample Dictionary

{'A': 12, 'B': 52, 'C': 23, 'D': 46, 'E': 27, 'F': 52, 'G': 23}

 

Key값을 기준으로 오름차순(ascending order)

dict(sorted(sample_dict.items(), key=lambda x : x[0]))

 

Key값을 기준으로 내림차순(descending order)

dict(sorted(sample_dict.items(), key=lambda x : x[1]))

 

Value값을 기준으로 오름차순(ascending order)

dict(sorted(sample_dict.items(), key=lambda x : x[1]))

 

Value값을 기준으로 내림차순(descending order)

dict(sorted(sample_dict.items(), key=lambda x : x[1], reverse=True))

 

Value, Key값을 기준으로 내림차순(descending order)

dict(sorted(sample_dict.items(), key=lambda x : (x[1], x[0]), reverse=True))

Python Flask 라이브러리 기반으로 가장 기본적인 웹 서버를 구축해본다.

 

Python 설치 후 Flask 라이브러리를 설치한다. 

 

Flask 라이브러리를 설치할 때는 가능한 가상환경을 먼저 구성하고 가상환경 내에 라이브러리를 설치하도록한다.

 

2020/03/14 - [Python] - [Python] VirtualEnv로 파이썬 가상환경 구성하기

 

Flask 라이브러리 설치

pip3 install flask

 

Flask 웹 서버 코드

import socket
from flask import Flask
from flask import jsonify

app = Flask(__name__)

@app.route("/")
def print_hello():
    return "Hello World - Flask"
    
@app.route("/info", methods=["POST"])
def info():
    info_dict = dict()
    info_dict["IP_ADDRESS"] = socket.gethostbyname(socket.gethostname())
    info_dict["HOST_NAME"] = socket.gethostname()
    return info_dict

if __name__ == "__main__":
    app.run(debug=True, host="0.0.0.0", port=5000)

웹 서버 기능으로 심플한 기능 두 가지를 구성했다. /으로 요청하면 "Hello World - Flask"라는 문구를 출력하도록 하는 것과 /info로 요청하면 IP주소와 Host명을 응답하도록 했다. 어떤 호스트에서도 접근이 가능하도록 app.run에 host를 0.0.0.0으로 설정했고 port는 5000으로 지정했다. debug=True는 debug 모드를 킨 것으로 코드가 수정되면 flask 서버가 다시 시작된다.

 

Flask 웹 서버 구동

python3 app.py

위에 작성된 코드를 app.py 이름으로 저장하고 Python 명령어로 실행한다. 

 

Flask 웹 서버 테스트

위에 구성된 기능으로 서버가 잘 동작하는지 테스트를 해야하는데 테스트를 할 때는 여러 방법이 있다.

  • curl 명령어를 이용
  • Postman, Insomnia 툴을 이용
  • Python, C# 등 필요한 언어에서 직접 RESTFul 호출

본 가이드에서는 Postman을 이용한 호출로 테스트를 한다.

/ 기능 테스트

/info 기능 테스트

 

정상 동작!

 

끝!

Python 개발할 때 보통 Jupyter Notebook을 많이 이용하곤 하는데

 

Notebook 보다 더 편리한 기능을 제공하여 개발 생산성을 높여주는 도구로 Juptyer Lab이 있다.

 

Notebook에서 생성된 코드라도 Lab에서 열리고 서로 호환이 가능하니 한번 사용해보도록 하자!

 

Jupyter Lab 설치 방법

pip install jupyterlab

 

Jupyter Lab 구동 방법

jupyter lab

 

Jupyter Lab 구동 화면

왼쪽은 파일 리스트를 볼 수 있는 Explorer 영역이고 오른쪽은 코드를 개발할 수 있는 Editor 영역이다. Explorer에서 파일을 클릭한채 드래그하면 전/후 디렉토리로 위치를 옮길 수 있다. 기본적인 구성은 Notebook과 유사해서 Notebook을 오래 사용한 사람이라면 기능을 파악하는데 오래 걸리지 않을 듯하다.

 

Jupyter Lab 화면 분할

Editor 영역은 탭을 클릭하고 드래그하면 아래와 같이 화면 분할이 가능하며 Notebook 뿐만 아니라 일반 스크립트 편집, Terminal도 분할 창에 열 수 있어서 코드를 개발하고 테스트하는데 편리하다.

 

Jupyter Notebook과 Lab 비교화면

Notebook과 Lab의 화면을 비교하면 Notebook의 경우 ipynb 파일 리스트가 메인 화면에 출력되고 File, Running, Clusters 등의 메뉴가 상단에 있다. Lab의 경우에 해당 기능은 모두 왼쪽 탭 메뉴로 구성되어있고 실행 시 Python이나 Console, Terminal 등을 구동할 수 있는 Launcher 화면이 바로 나온다.

Jupyter notebook은 Python 개발할 때 유용한 툴로 개발하면서 결과를 즉시 볼 수 있다.

 

특히나 데이터를 다룰 때 데이터를 보면서 전처리하고 시각화하는데 유용하다.

 

조각 코드를 짜면서 코드에 대한 설명도 작성할 수 있고

 

전체 수행이나 조각 코드별 수행에 대한 기능 등 많은 기능을 지원한다.

 

Jupyter Notebook 설치

pip install jupyter

Jupyter Notebook 구동

jupyter notebook

jupyter notebook을 실행하는데 많은 옵션이 있는데, jupyter notebook을 입력해서 구동하면 기본으로 설정된 Internet 프로그램을 기반으로 웹 브라우저가 실행된다.

 

Jupyter Notebook 구동화면

 

Notebook 생성

오른쪽 상단의 New > Python3에서 새로운 Notebook을 생성한다.

Notebook 이름 변경

상단의 Untitled를 누르면 Notebook의 이름을 변경할 수 있다.

Notebook 사용하기

위와 같이 노트북 내에서 변수에 값을 대입하고 변수명을 실행해보면 값이 바로 보인다. Cell 앞에 출력된 [1], [5] 등의 숫자는 Cell의 실행 순서이다. 빨간색 부분의 [5]는 Notebook에서 다섯번째 실행된 Cell을 의미한다. Cell 단위 코드가 많아지면 앞에 순서를 통해서 실행된 순서를 참고하면 된다. 

 

Jupyter Notebook 단축키

참고 자료 (새창 열기) : https://towardsdatascience.com/jypyter-notebook-shortcuts-bf0101a98330

Python 환경에서 개발하면 필요한 패키지를 추가로 설치해서 진행하는데 

 

Python의 버전과 추가로 설치할 패키지들의 각 버전이 호환될 때가 있고 안될 때가 있다.

 

이를 위해서는 업무 단위 또는 프로젝트 레벨로 독립된 가상의 환경을 만든다.

 

Python을 위한 가상 환경을 만드는 방법은 여러가지가 있는데

 

보통 대표적으로 VirtualEnv를 이용하는 방법과 Anaconda 설치를 통한 Conda 환경을 구성하는 방법이 있다.

 

본 가이드에서는 VirtualEnv를 이용하는 방법을 알아본다.

 

VirtualEnv 설치

pip install virtualenv

virtualenv가 이미 설치가 된 PC 환경이라 위와 같이 나온다.

 

가상환경 생성

virtualenv myenv

myenv라는 이름의 가상환경을 구성한다. 

구성이 완료되면 디렉토리에 가상환경이름으로 폴더가 생성된다. myenv로 생성했기 때문에 myenv로 생성되어 있다.

 

가상환경 구동

가상환경을 구동할 때는 가상환경 디렉토리 하위에 Scripts/activate.bat를 실행하면 되는데 Linux와 Window는 조금 다르게 구동합니다.

 

Window 환경

./myenv/Scripts/activate.bat

Linux 환경

source ./myenv/Scripts/activate

가상 환경 구동이 완료되면 Command 앞에 가상환경 이름이 출력된다.

 

가상환경 해제

deactivate

가상 환경을 해제하고 빠져나오면 Command 앞에 가상환경 이름이 사라지고 원래대로 돌아온다.

 

가상환경 삭제

myenv 디렉토리를 그냥 지우면 가상환경이 삭제된다.

 

+ Recent posts