Data Visualisation

EDA with Python - Pandas

강의 홍보

I. 개요

  • Pandaspanel data의 의미를 가지고 있다.
  • 흔히, 엑셀 데이터로 불리우는 관계형(Relational) 또는 레이블링된(Labeling)된 데이터를 보다 쉽게, 직관적으로 작업할 수 있도록 설계되어 있다.
  • Python에서 데이터 분석을 수행하기 위한 매우 기초적이며 높은 수준의 문법을 제공한다.
  • Pandas는 크게 Series & DataFrame을 다룰 수 있도록 기초 문법을 제공하고 있다.
  • Pandas가 다루는 여러 종류의 데이터를 확인해보자.
    • SQL 테이블 또는 Excel 스프레드시트에서와 같이 형식의 행과 열이 있는 표 형식 데이터
    • 순서 및 순서 지정되지 않은(고정 빈도일 필요는 없음) 시계열 데이터.
    • 행 및 열 레이블이 있는 임의 행렬 데이터(동일하게 입력 또는 이기종)
    • 기타 형태의 관측/통계 데이터 세트

II. 모듈 Import

import pandas as pd
print(pd.__version__)
1.0.3

III. Pandas 기본 활용법

  • Pandas가 제공하는 다양한 기능은 다음과 같지만, 본 튜토리얼에서는 Sample 위주로 다루도록 한다.
    • 부동 소수점 데이터뿐만 아니라 부동 소수점 데이터에서도 결측 데이터(NaN으로 표시됨)를 쉽게 처리함
    • 크기 변이성: DataFrame 및 고차원 객체에서 열을 삽입 및 삭제 가능
    • 자동 및 명시적 데이터 정렬: 객체를 라벨 집합에 명시적으로 정렬하거나, 사용자가 라벨을 무시하고 Series, DataFrame 등이 자동으로 데이터를 계산에서 정렬 가능
    • 데이터 집합에서 데이터 집합의 분할 적용 결합 작업을 수행할 수 있는 기능
    • 다른 PythonNumPy 데이터 구조에서 색인이 다른 데이터를 DataFrame 개체로 쉽게 변환
    • 지능형 라벨 기반 슬라이싱, 고급 인덱싱 및 대용량 데이터 세트 부분 집합 취하기
    • 직관적인 데이터 세트 병합 및 결합
    • 유연한 데이터 세트 재구성 및 피벗테이블 구성
    • 축의 계층적 라벨링(눈금당 여러 개의 라벨을 가질 수 있음)
    • 플랫 파일(CSV 및 구분), Excel 파일, 데이터베이스 로딩 및 초고속 HDF5 형식의 데이터 저장/로딩에 사용되는 강력한 데이터 IO 도구
    • 시계열별 기능: 날짜 범위 생성 및 주파수 변환, 이동 창 통계, 날짜 이동 및 지연.

IV. Pandas Sample Tutorial

  • 간단하게 Pandas를 활용한 Tutorial을 확인해보자.

(1) 파라미터 세팅

  • 먼저, 행과 열을 최대 출력하는 개수를 지정한다.
pd.set_option('display.max_columns', 500)
pd.set_option('display.max_rows', 500)

(2) 데이터 생성

  • 데이터를 생성하는 방법은 크게 2가지로 구분된다. (Series, DataFrame)
  • 먼저 Series를 만들어보자.
temp_series = pd.Series([1,2,3,5,8,13,21])
print(temp_series)
0     1
1     2
2     3
3     5
4     8
5    13
6    21
dtype: int64
  • 이제 Series에 있는 데이터와 함께 DataFrame을 만든다.
series_df = pd.DataFrame({
    "No":range(1,5), 
    "날짜":pd.Timestamp('20200601'), 
    "출석점수":pd.Series(5, index=list(range(4)), dtype='float64'), 
    "등급":pd.Categorical(["A등급", "B등급", "C등급", "D등급"]), 
    "구분":"학점"
})

print(series_df)
   No         날짜  출석점수   등급  구분
0   1 2020-06-01   5.0  A등급  학점
1   2 2020-06-01   5.0  B등급  학점
2   3 2020-06-01   5.0  C등급  학점
3   4 2020-06-01   5.0  D등급  학점
  • 이번에는 딕셔너리에서 데이터프레임으로 변환하는 소스코드다.
  • 아래 코드에서 보여주고자 하는 것은 딕셔너리의 크기가 동일하지 않아도, 데이터프레임으로 변환되는데 문제가 없다.
  • 다만, NaN으로 채울 뿐이다.
dict_df = [{'가': '사과', '나': '볼'},{'가': '비행기', '나': '방망이', '다': '고양이'}]
dict_df = pd.DataFrame(dict_df)
print(dict_df)
     가    나    다
0   사과    볼  NaN
1  비행기  방망이  고양이
  • 이번에는 배열에서 데이터프레임으로 변환하는 소스코드다.
sdf = {
    '국가':['한국', '미국', '일본'],
    'ISO-Code':[1,2,3],
    '지역': [4180.69, 4917.94, 454.07,],
    '위치': ["서울", "LA", "동경"]
    }
sdf = pd.DataFrame(sdf)
print(sdf)
   국가  ISO-Code       지역  위치
0  한국         1  4180.69  서울
1  미국         2  4917.94  LA
2  일본         3   454.07  동경

(3) 파일 입출력

  • 외부 데이터의 파일 입출력에 대한 코드를 입력한다.
url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.data'
df = pd.read_csv(url)
print(df.head(2))
   39          State-gov   77516   Bachelors   13        Never-married  \
0  50   Self-emp-not-inc   83311   Bachelors   13   Married-civ-spouse   
1  38            Private  215646     HS-grad    9             Divorced   

         Adm-clerical   Not-in-family   White   Male   2174   0   40  \
0     Exec-managerial         Husband   White   Male      0   0   13   
1   Handlers-cleaners   Not-in-family   White   Male      0   0   40   

    United-States   <=50K  
0   United-States   <=50K  
1   United-States   <=50K  
  • 컬럼명이 지정되지 않아 관측값이 컬럼명 위치에 있는 것을 확인할 수 있다.
  • 이 때에는 컬럼명을 먼저 저장한 뒤, 아래와 같은 코드로 실행하면 정상적으로 데이터프레임이 완성된다.
columns = ['age', 'workclass', 'fnlwgt', 'education', 'education_num', 
           'marital_status', 'occupation', 'relationship', 'ethnicity', 
           'gender','capital_gain','capital_loss','hours_per_week','country_of_origin','income']

df2 = pd.read_csv(url, names=columns)
print(df2.head(2))
   age          workclass  fnlwgt   education  education_num  \
0   39          State-gov   77516   Bachelors             13   
1   50   Self-emp-not-inc   83311   Bachelors             13   

        marital_status        occupation    relationship ethnicity gender  \
0        Never-married      Adm-clerical   Not-in-family     White   Male   
1   Married-civ-spouse   Exec-managerial         Husband     White   Male   

   capital_gain  capital_loss  hours_per_week country_of_origin  income  
0          2174             0              40     United-States   <=50K  
1             0             0              13     United-States   <=50K  
  • 컬럼명에 대한 정보는 Adult Data Set 에서 참고한다.
  • 판다스를 배울 때 조금더 자세히 배우겠지만, info() 함수를 사용하면 데이터의 일반적인 정보를 확인할 수 있다.
print(df2.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 32561 entries, 0 to 32560
Data columns (total 15 columns):
 #   Column             Non-Null Count  Dtype 
---  ------             --------------  ----- 
 0   age                32561 non-null  int64 
 1   workclass          32561 non-null  object
 2   fnlwgt             32561 non-null  int64 
 3   education          32561 non-null  object
 4   education_num      32561 non-null  int64 
 5   marital_status     32561 non-null  object
 6   occupation         32561 non-null  object
 7   relationship       32561 non-null  object
 8   ethnicity          32561 non-null  object
 9   gender             32561 non-null  object
 10  capital_gain       32561 non-null  int64 
 11  capital_loss       32561 non-null  int64 
 12  hours_per_week     32561 non-null  int64 
 13  country_of_origin  32561 non-null  object
 14  income             32561 non-null  object
dtypes: int64(6), object(9)
memory usage: 3.7+ MB
None

V. 결론

  • 간단하게 Pandas를 활용한 데이터 생성 및 파일 입출력에 대해서 배우는 시간을 가졌다.
  • 만약, 빠르게 판다스를 활용하여 데이터 전처리를 연습 하고 싶다면, 공식홈페이지에 있는 10 minutes to pandas에서 학습하는 것을 권장한다.
  • 강사는 Kaggle 데이터를 활용하여 Pandas 함수를 응용할 것이다.

Reference

Mukhiya, Suresh Kumar, and Usman Ahmed. “Hands-On Exploratory Data Analysis with Python.” Packt Publishing, Mar. 2020, www.packtpub.com/data/hands-on-exploratory-data-analysis-with-python.

EDA with Python - NumPy Broadcasting

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. 개요

  • NumPy는 C언어로 구성되었으며, 고성능의 수치계산을 위해 나온 패키지이며, Numerical Python의 약자이다.
  • Python을 활용한 데이터 분석을 수행할 때, 그리고 데이터 시각화나 전처리를 수행할 때, NumPy는 매우 자주 사용되기 때문에 한번쯤은 꼭 다듬고 가는 것이 중요하다.
  • 이전 포스트에서는 Python - NumPy 소개 및 다양한 객체 생성에 대해 다루었으니, 본 포스트 읽기에 앞서서 기본적인 개념에 대해 확인하기를 바란다.

II. 모듈 Import

import numpy as np
print(np.__version__)
1.18.4

III. NumPy 기본 활용법

  • NumPy 객체 생성을 한 뒤에, 파일 저장, 서로 다른 배열끼리의 사칙연산 등을 수행할 수 있다.

(1) NumPy 객체 파일 저장 및 불러오기

  • savetxt, loadtxt, 그리고 genfromtxt 함수를 활용하여 객체를 불러오는 예제를 실습한다.
# 객체 생성 후 저장하기
x = np.arange(0.0, 50.0, 1.0)
print(x)
np.savetxt('data.out', x, delimiter=',')
[ 0.  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. 32. 33. 34. 35.
 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]
!ls
data.out  sample_data
  • 현재 폴더에 data.out 파일이 생성된 것을 확인할 수 있다.
# `data.out` 불러오기
z = np.loadtxt('data.out', unpack=True)
print(z)
[ 0.  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. 32. 33. 34. 35.
 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]
  • 정상적으로 data.out을 불러와서 z객체에 저장된 것을 확인할 수 있다.
# genfromtxt 활용
my_array2 = np.genfromtxt('data.out', 
                          skip_header=1, 
                          filling_values=-999)
print(my_array2)
[ 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. 32. 33. 34. 35. 36.
 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49.]
  • z객체와 마찬가지로 my_array2도 객체가 정상적으로 생성된 것을 확인할 수 있다.

EDA with Python - NumPy basic

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. 개요

  • 파이썬 처음 입문하는 사람들을 위해서 작성하였다. 탐색작 자료분석(EDA: Exploratory Data Analysis)을 위해 가장 기초적인 뼈대가 되는 NumPy에 대해서 학습하도록 합니다.

II. Array 만들기

  • 1차원, 2차원, 3차원의 Array를 만들고 학습니다.
  • 먼저 numpy 라이브러리를 불러옵니다.
# import numpy
import numpy as np
print(np.__version__)
1.18.4
  • 현재 구글 코랩에서 제공하는 numpy 버전은 1.18.4로 확인되고 있습니다.

(1) 1차원 Array 만들기

  • 1차원 Array를 만들어 봅시다.
my_1D_array = np.array([1,3,5,7])
print(my_1D_array)
type(my_1D_array)
[1 3 5 7]





numpy.ndarray

(2) 2차원 Array 만들기

  • 이번에는 2차원 Array를 만듭니다.
my_2D_array = np.array([[1, 2, 3, 4], [2, 4, 9, 16], [4, 8, 18, 32]])
print(my_2D_array)
type(my_2D_array)
[[ 1  2  3  4]
 [ 2  4  9 16]
 [ 4  8 18 32]]





numpy.ndarray

(3) 3차원 Array 만들기

  • 이번에는 3차원 Array를 만듭니다.
my_3D_array = np.array([[[ 1, 2 , 3 , 4],[ 5 , 6 , 7 ,8]], [[ 1, 2, 3, 4],[ 9, 10, 11, 12]]])
print(my_3D_array)
type(my_3D_array)
[[[ 1  2  3  4]
  [ 5  6  7  8]]

 [[ 1  2  3  4]
  [ 9 10 11 12]]]





numpy.ndarray

III. Array Information

  • 실무에서는 데이터를 어떤 형태로 수집되는지 바로 판단하기가 어렵습니다.
  • 따라서, 수집받은 데이터를 다양한 방식으로 출력하여 정보를 알아가는 것이 좋습니다.
  • 대표적으로, ndim, shape, dtype을 통해서 확인합니다.
    • ndim은 배열의 차원수를 의미합니다.
    • shape는 tuple의 index개수와 각 index가 보유하는 elements의 개수를 반환합니다.
    • dtype는 각 게체의 데이터 타입을 표시합니다.

(1) 함수 작성

  • 저장된 1차원, 2차원, 3차원의 Array를 활용합니다.
  • 먼저, 빠르게 확인하기 위해 함수를 작성합니다.
def check_array_info(arr_obj): 
  if isinstance(arr_obj, (np.ndarray)):
    print("The current dimension is :", arr_obj.ndim)
    print("The current shape is :", arr_obj.shape)
    print("The current dtype is :", arr_obj.dtype)
    print("The current value is :\n", arr_obj)

(1) 1차원 Array의 정보 확인

  • 이제 정보를 확인합니다.
check_array_info(my_1D_array)
The current dimension is : 1
The current shape is : (4,)
The current dtype is : int64
The current value is :
 [1 3 5 7]
  • 1차원 shape의 경우에는 (4,)만 표시가 되었는데, 이는 요소의 개수만 출력됨을 의미합니다.

(2) 2차원 Array의 정보 확인

  • 2차원 배열의 정보를 확인합니다.
check_array_info(my_2D_array)
The current dimension is : 2
The current shape is : (3, 4)
The current dtype is : int64
The current value is :
 [[ 1  2  3  4]
 [ 2  4  9 16]
 [ 4  8 18 32]]

(3) 3차원 Array의 정보 확인

  • 3차원 배열의 정보를 확인합니다.
check_array_info(my_3D_array)
The current dimension is : 3
The current shape is : (2, 2, 4)
The current dtype is : int64
The current value is :
 [[[ 1  2  3  4]
  [ 5  6  7  8]]

 [[ 1  2  3  4]
  [ 9 10 11 12]]]

IV. Creating An Array

  • 이제 다양한 방식으로 NumPy를 작성해보자.
# Array of ones
ones = np.ones((3,4))
check_array_info(ones)
The current dimension is : 2
The current shape is : (3, 4)
The current dtype is : float64
The current value is :
 [[1. 1. 1. 1.]
 [1. 1. 1. 1.]
 [1. 1. 1. 1.]]
# Array of zeros
zeros = np.zeros((1,2,3), dtype=np.int16)
check_array_info(zeros)
The current dimension is : 3
The current shape is : (1, 2, 3)
The current dtype is : int16
The current value is :
 [[[0 0 0]
  [0 0 0]]]
# Array with random values
np_random = np.random.random((2,2))
check_array_info(np_random)
The current dimension is : 2
The current shape is : (2, 2)
The current dtype is : float64
The current value is :
 [[0.47775118 0.60277821]
 [0.01818544 0.23499141]]
# Empty Array
empty_array = np.empty((3,2))
check_array_info(empty_array)
The current dimension is : 2
The current shape is : (3, 2)
The current dtype is : float64
The current value is :
 [[2.31101775e-316 0.00000000e+000]
 [0.00000000e+000 0.00000000e+000]
 [0.00000000e+000 0.00000000e+000]]
# Full Array
full_array = np.full((2,2), 7)
check_array_info(full_array)
The current dimension is : 2
The current shape is : (2, 2)
The current dtype is : int64
The current value is :
 [[7 7]
 [7 7]]
# Array of evenly_spaced values
even_spaced_array = np.arange(10, 25, 5)
check_array_info(even_spaced_array)
The current dimension is : 1
The current shape is : (3,)
The current dtype is : int64
The current value is :
 [10 15 20]
even_spaced_array2 = np.linspace(0, 2, 9)
check_array_info(even_spaced_array2)
The current dimension is : 1
The current shape is : (9,)
The current dtype is : float64
The current value is :
 [0.   0.25 0.5  0.75 1.   1.25 1.5  1.75 2.  ]

V. Array의 메모리 체크

  • 머신러닝과 딥러닝을 수행하려면 반드시 메모리 체크가 필수다.
  • 이 부분과 관련된 함수를 작성하여 기존에 저장된 1차원, 2차원, 3차원 배열의 객체를 출력하여 본다.

(1) 함수 작성

  • check_memory_info라는 함수를 만들어보자.
def check_memory_info(arr_obj): 
  if isinstance(arr_obj, (np.ndarray)): 
    print("The current size is :", arr_obj.size)
    print("The current flags is :", arr_obj.flags)
    print("The current itemzise is :", arr_obj.itemsize)
    print("The current total consumed bytes is :", arr_obj.nbytes)
  • sizeelement의 전체 개수를 의미한다.
  • flagsmemory layout의 정보를 출력한다.
  • itemsize는 bytes 당 한 배열의 길이를 출력한다.
  • nbytes는 객체가 소비하는 전체 bytes를 출력한다.

(1) 1차원 Array의 메모리 정보 확인

check_memory_info(my_1D_array)
The current size is : 4
The current flags is :   C_CONTIGUOUS : True
  F_CONTIGUOUS : True
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False

The current itemzise is : 8
The current total consumed bytes is : 32

(1) 2차원 Array의 메모리 정보 확인

check_memory_info(my_2D_array)
The current size is : 12
The current flags is :   C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False

The current itemzise is : 8
The current total consumed bytes is : 96

(3) 1차원 Array의 메모리 정보 확인

check_memory_info(my_3D_array)
The current size is : 16
The current flags is :   C_CONTIGUOUS : True
  F_CONTIGUOUS : False
  OWNDATA : True
  WRITEABLE : True
  ALIGNED : True
  WRITEBACKIFCOPY : False
  UPDATEIFCOPY : False

The current itemzise is : 8
The current total consumed bytes is : 128

VI. 결론

  • NumPy는 파이썬에서 다루는 데이터과학에서 다루는 매우 중요한 토대가 되는 라이브러이이다.
  • 간단하게 NumPy를 활용한 배열에 대해 학습하였다.
  • 또한, Array를 다양하게 만들어보고, Array가 가지고 있는 다양한 정보를 확인할 수 있는 여러 함수에 대해 익히는 시간을 가졌다.
  • 그러나, 여기까지는 사실상 기초이고, 이제 배열의 연산에 대해 익히는 시간을 가져야 한다.
  • 다음 시간에 Broadcasting이라는 기법을 학습할 것이다.

Reference

Mukhiya, Suresh Kumar, and Usman Ahmed. “Hands-On Exploratory Data Analysis with Python.” Packt Publishing, Mar. 2020, www.packtpub.com/data/hands-on-exploratory-data-analysis-with-python.

EDA with Personal Email - Overview

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. Matplotlib & Seaborn

(1) 기본 개요

Matplotlib는 파이썬 표준 시각화 도구라고 불리워지며 파이썬 그래프의 기본 토대가 된다고 해도 무방하다. 객체지향 프로그래밍을 지원하므로 세세하게 꾸밀 수 있다.

Google Colab Intro

강의 홍보

I. 들어가며

  • 빅데이터 시대에 맞춰서 다양한 툴이 나오는 가운데, Google Colab은 가히 혁명적이라 할 수 있다.
  • 과거 높은 사양의 컴퓨터에서만 수행할 수 있었던 머신러닝과 딥러닝을 구글 코랩의 환경에서 무료로 배울 수 있는 기회를 구글이 제공하기 시작했다.
  • 간단하게 아래 소스코드를 실행하여 CPU와 GPU의 연산속도를 비교 해보자.

II. Data Transformation 예제

  • 이제 간단하게 데이터 가공의 예를 실습해보자.

(1) 딕셔너리에서 시리즈로 변환하기

  • 다음의 소스코드를 실행하여 딕셔너리에서 시리즈로 변환하는 것을 실습해보자.
# pandas 불러오기
import pandas as pd

# key:value 형태로 딕셔너리를 만들고 temp_dic으로 저장
temp_dic = {'evan': 30, 'chloe': 27}
print(temp_dic)
{'evan': 30, 'chloe': 27}
# 시리즈로 변환하고 출력값 확인
data = pd.Series(temp_dic)
print(data)
evan     30
chloe    27
dtype: int64
  • 위 출력값에서 인덱스는 evanchloe이다.

(2) 리스트에서 시리즈로 변환하기

  • 이번에는 리스트에서 시리즈로 변환한다. 이 때 출력값의 인덱스가 어떻게 나타나는지 확인해본다.
import pandas as pd
temp_list = ['2020-05-29', 1.11, '가나다', 'ABC', 100, True]
data = pd.Series(temp_list)
print(data)
0    2020-05-29
1          1.11
2           가나다
3           ABC
4           100
5          True
dtype: object
  • 이번에는 인덱스의 값이 자동으로 0부터 시작하는 것을 알 수 있다.

III. Data Visualisation 예제

  • 이번에는 간단하게 시각화를 작성해본다.
import numpy as np
import matplotlib.pyplot as plt

N = 5
menMeans = (20, 35, 30, 35, 27)
womenMeans = (25, 32, 34, 20, 25)
menStd = (2, 3, 4, 1, 2)
womenStd = (3, 5, 2, 3, 3)
ind = np.arange(N)    # the x locations for the groups
width = 0.35       # the width of the bars: can also be len(x) sequence

p1 = plt.bar(ind, menMeans, width, yerr=menStd)
p2 = plt.bar(ind, womenMeans, width,
             bottom=menMeans, yerr=womenStd)

plt.ylabel('Scores')
plt.title('Scores by group and gender')
plt.xticks(ind, ('G1', 'G2', 'G3', 'G4', 'G5'))
plt.yticks(np.arange(0, 81, 10))
plt.legend((p1[0], p2[0]), ('Men', 'Women'))

plt.show()

png

Data Transformation - Merging Data

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

  • 데이터는 코로나 데이터를 활용했다.

I. Data Transform Overview

  • 데이터 변환은 데이터를 하나의 형식이나 구조에서 다른 형식이나 구조로 변환하는 데 사용되는 기법이다.

matplotlib - 09 lollipop

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. Matplotlib & Seaborn

(1) 기본 개요

Matplotlib는 파이썬 표준 시각화 도구라고 불리워지며 파이썬 그래프의 기본 토대가 된다고 해도 무방하다. 객체지향 프로그래밍을 지원하므로 세세하게 꾸밀 수 있다.

matplotlib - 08 Histogram

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. Matplotlib & Seaborn

(1) 기본 개요

Matplotlib는 파이썬 표준 시각화 도구라고 불리워지며 파이썬 그래프의 기본 토대가 된다고 해도 무방하다. 객체지향 프로그래밍을 지원하므로 세세하게 꾸밀 수 있다.

ch04 - Modeling Visualisation

개요

A picture is worth a thousand words — English Language Adage

The simple graph has brought more information to the data analyst’s mind than any other device. — John Tukey

한장의 그림이 수천단어보다 가치가 있다는 영어속담과, 명료한 시각화가 데이터분석가에게 다른 어떤 도구보다 더 많은 정보를 제공한다는 유명한 데이터 과학자의 조언. 핵심은 시각화이다.

본 장에서는 ggplot2 패키지를 활용한 시각화를 먼저 보여줄 것이다. 먼저 간단하게 ggplot2 패키지에 소개하자면 Grammar of Graphics1의 철학을 담아서 R 생태계에서 유명한 학자 중, Hadley Wickham에 의해 주도적으로 개발되었다. 그래프에도 문법이 있다는 패키지의 철학 아래, R의 시각화는 괄목할만한 발전을 이루었고 이는 R의 대중화에도 큰 영향을 끼쳤다.

matplotlib 07 Polar Chart

강의 홍보

공지

제 수업을 듣는 사람들이 계속적으로 실습할 수 있도록 강의 파일을 만들었습니다. 늘 도움이 되기를 바라며. 참고했던 교재 및 Reference는 꼭 확인하셔서 교재 구매 또는 관련 Reference를 확인하시기를 바랍니다.

I. Matplotlib & Seaborn

(1) 기본 개요

Matplotlib는 파이썬 표준 시각화 도구라고 불리워지며 파이썬 그래프의 기본 토대가 된다고 해도 무방하다. 객체지향 프로그래밍을 지원하므로 세세하게 꾸밀 수 있다.