소프트웨어 엔지니어를 위한 Jupyter 노트북 🚀

Jupyter Notebook은 iPython repl과 상호 작용하는 대화형 웹 애플리케이션으로 구조화되었지만 반복적인 Python 스크립트를 실행할 수 있습니다. 파이프라인을 신속하게 프로토타이핑하고, 데이터를 시각화하거나 임시 분석을 수행하기 위해 데이터 과학자가 사실상 선택하는 것입니다.

Jupyter 노트북은 가지고 있을 수 있는 모든 데이터 세트를 시각화하고 임시 분석을 수행할 수 있는 환상적인 방법입니다. 데이터베이스를 쿼리하고 데이터를 반복 가능한 방식으로 표시하는 데 특히 유용합니다.

환경 설정



Python 프로젝트에서 작업할 때 저는 Pyenv 및 Pyenv 가상 환경 래퍼를 사용하여 다양한 Python 버전과 종속성을 모두 관리하는 것을 좋아합니다. Pyenv GitHub repoVirtual Env wrapper 에서 설치 안내서를 찾을 수 있습니다.

Python 3.6이 설치되어 있지 않은 경우 이미 다음을 실행합니다.

$ pyenv install 3.6.0

새 가상 환경을 설정하고 활성화합니다.

# Create a Python 3.6.0 environment called jupyter-notebooks
$ pyenv virtualenv 3.6.0 jupyter-notebooks

# Start the virtual environment
$ pyenv activate jupyter-notebooks 

다음으로 필요한 모든 종속 항목을 설치합니다.

$ pip install jupyter pandas numpy matplotlib seaborn

마지막으로 노트북을 저장하려는 디렉토리에서 jupyter 서버를 시작합니다.

$ jupyter notebook



새로운 Jupyter 창

노트북 만들기



노트북은 페이지의 오른쪽 상단 모서리에 있는 드롭다운을 사용하여 생성됩니다. Jupyter가 자동으로 노트북을 열고 시작하므로 바로 사용할 수 있습니다.


Jupyter 새 노트북 드롭다운 메뉴



빈 Jupyter 노트북

다른 Python 파일과 마찬가지로 파일 맨 위에 가져오기를 포함하는 것이 가장 좋습니다. Jupyter에서는 이를 위해 첫 번째 셀을 사용할 수 있습니다. Shift + Enter 스크립트를 작성하면 셀이 실행됩니다.

# Pandas for manipulating dataframes
import pandas as pd

# Matplotlib for inline graphs and plots
from matplotlib import pyplot as plt
%matplotlib inline

# Seaborn for plot styles.
import seaborn as sns

데이터 읽기



CSV



Pandas에는 csv 파일을 읽을 수 있는 편리한 기능이 있습니다. 다음은 몇 가지 예이지만 Chris Albon은 자세한 정보가 필요한 경우 csv 파일 가져오기에 대한 문서great blog post를 참조하십시오.

# if the file has headers
df = pd.read_csv('path_to_file')

# if the file has no headers
df = pd.read_csv('path_to_file', headers=None)

데이터 탐색



로드된 데이터 프레임을 탐색하는 방법에는 여러 가지가 있습니다. 처음 n개 행을 검사하려면 기본적으로 처음 5개 행을 반환하지만 주어진 숫자를 반환할 수 있는 head 함수를 사용하십시오.

# Print the first 5
df.head()

# Print the first 10
df.head(10)

데이터 프레임 내에 있는 데이터에 대한 몇 가지 기본 정보를 찾기 위해 describe 함수는 NaN 값을 제외한 값의 요약을 출력합니다.

df.describe()

마지막으로 전체 데이터 프레임을 보기 위해 pandas는 option_context 컨텍스트 내에서 일시적으로 옵션을 설정하는 with 기능을 제공합니다.

# Set the max rows to print to 999 and print.
with pd.option_context('display.max_rows', 999):
    print (df)

데이터 수정 및 필터링



데이터 프레임의 개별 열과 값에 액세스하기 위해 pandas는 loc 매개변수를 제공합니다.

# fetch a column
df['column_name']

# fetch a row
df.loc['index_value']

# fetch a single value
df.loc['index_value', 'column_name']

# filter a data-frame by a given condition
df.loc[lambda df: df['column_name'] > 3]
apply 함수를 사용하여 열을 쉽게 추가하거나 수정할 수 있습니다.

# create a new column based on other column values
df['new_column'] = df['old_column'].apply(lambda val: val * 2)

# override a column
df['old_column'] = df['old_column'].apply(lambda val: val * 2)

기본 그래프



Jupyter 노트북의 그래프 작성은 단일 seaboard 함수를 호출하는 것만큼 쉽습니다.

# create a line plot using your data frame
sns.lineplot(x="my_x_field", y="my_y_field", data=my_data_frame)



예시 라인 플롯

# create a scatter plot
sns.scatterplot(x="my_x_field", y="my_y_field", size="attribute_z",
                sizes=(10, 200), # size boundaries
                data=my_data_frame)



예제 산점도

Seaborn website은 포괄적인 예시 목록을 제공하며, 각 예시에는 이를 생성하는 데 사용되는 코드 스니펫과 탐색할 몇 가지 예시 데이터 세트가 포함되어 있습니다.

보너스



최근 GitHub는 UI에서 Jupyter 노트북을 렌더링하기 시작하여 그 어느 때보다 쉽게 ​​노트북을 실행하고 공유할 수 있습니다. iPython 리포지토리에는 good example이 있습니다.

유용한 링크



Pandas
Seaborn
Jupyter

좋은 웹페이지 즐겨찾기