달력

11

« 2024/11 »

  • 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
728x90
반응형

[파이썬을 활용한 데이터 전처리 Level UP- 7 회차 미션 시작]

* 복습

 - groupby 함수를 사용하여 pandas 의 데이터 group 한다.

  . 순서가 중요하다. 함수를 사용하는 순서.. 어떤 것을 기준으로 해야 하는지 명확하게 정의해야 한다.

 - 데이터 정렬하는 방법.. sort_values 등 방법과 index를 활용한 정렬과 인덱싱에 대해서 다시 한번 강조했다.

 

[01. Part 1) 데이터 핸들링 Chapter 05. 보고 싶은 데이터 찾아보기 - 데이터 정렬과 인덱싱 - 03. 마스킹 검색]

 

 

 

* 비교 연산

 - Series와 DataFrame의 data가 모두 ndarray 이므로, 비교 연산 및 브로드 캐스팅이 적용될 수 있다.

// 둘다 ndarray 를 기반으로 하기 때문에 적용될 수 있는 것이다.

// isin 은 속하느냐 안 속하느냐 따라서 나타내는 것이다.

// 변형될 위험이 없기 때문에 loc 나 iloc 는 쓸 필요가 없다. 하지만 값을 변경할 때는 반드시 인덱서를 써야 한다.

 

* 부울 리스트 연산

 - ndarray 타입의 부울 리스트에 대해, AND 연산(&)과 OR 연산( | ) 이 가능함

// | 는 enter 위에 있는 키보드 자판

// .values series를 ndarray 로 변환 한 다음에 사용해야 한다.

 

* 마스킹 검색

 - df.loc[부울 리스트] : True 인 요소의 위치에 대응되는 행만 가져옴

// loc  는 어느 상황에서나 사용할 수 있기 때문에 loc를 사용한다.

 

* 실습

// 인덱서로 사용해서 bool 인덱서로 사용해서 찾을 수가 있다.

// & | 로 연산할 때는 반드시 소괄호로 묶어줘야 한다. 안그러면 논리 연산을 어디서 행해야 할지 몰라서 에러가 날때가 많다.

 

[01. Part 1) 데이터 핸들링 Chapter 05. 보고 싶은 데이터 찾아보기 - 데이터 정렬과 인덱싱 - 04. 문자열 검색]

* Series.str

 - 문자열로 구성된 Series에 대해서는 str accesoor를 사용할 수 있으며, 이를 사용하면 string 관련 내장 함수를 자유 자재로 사용할 수 있다.

// split 등 각종 string 과련 method 를 사용할 수 있다는 것이다.

 - 예시

  . Series.str.strip( ) : 앞 뒤 공백 제거

  . Series.str.contains(s) : 문자열 s 를 포함하고 있는지 여부를 반환

  . Series.str.split(sep, expand) : sep 을 기준으로 Series를 분할

  .. expand = True : 새로운 열 생성

  .. expand = False: 새로운 열을 생성하지 않고 리스트를 반환

 

// pandas.Series.str 의 documentation

pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.html

Series.str()

Vectorized string functions for Series and Index.

NAs stay NA unless handled otherwise by a particular method. Patterned after Python’s string methods, with some inspiration from R’s stringr package.

 

예시)

s = pd.Series(["A_Str_Series"])
s
0    A_Str_Series
dtype: object
s.str.split("_")
0    [A, Str, Series]
dtype: object
s.str.replace("_", "")
0    AStrSeries
dtype: object

* Series.astype

 - Series의 자료형을 변환하는데 사용하는 함수

 - (예시) Seires.astype(str) : 숫자 자료형에 str accesor를 사용하기 위해 적용함

// 숫자는 int 나 float 으로 인식되는데.. string으로 인식시켜주기 위해서 대비하기 위해서 쓰는 것이다.

 

* 실습

// 시리얼 번호 = 공정, 제품, 식별자

// value_counts( ) 를 통해서 양품과 불량을 개략적으로 알아 본다.

// 'S'  공정인것을 찾을수가 있다. str.

 

// expand = True 는 새로운 컬럼이 만들어지게 되고, 각 column 으로 들어가게 된다.  그 구분은 split - 으로 대체되게 된다.

// concat 을 통해서.. 각각의 결과를 합치다. 열단위로 붙일때는 axis = 1 로 설정한 다음에 붙이는 것이다.

// 모든 컬럼을 바꿀때는 .columns = 로 통해서 바꾸면 되지만, 특정 컬럼만 이름을 바꿀때는 .rename 으로 바꾸는 것이 좋다.

 

// pandas.Series.astype 의 documentation

pandas.pydata.org/docs/reference/api/pandas.Series.astype.html

Series.astype(dtype, copy=True, errors='raise')

Parameters

dtypedata type, or dict of column name -> data type

Use a numpy.dtype or Python type to cast entire pandas object to the same type. Alternatively, use {col: dtype, …}, where col is a column label and dtype is a numpy.dtype or Python type to cast one or more of the DataFrame’s columns to column-specific types.

copybool, default True

Return a copy when copy=True (be very careful setting copy=False as changes to values then may propagate to other pandas objects).

errors{‘raise’, ‘ignore’}, default ‘raise’

Control raising of exceptions on invalid data for provided dtype.

  • raise : allow exceptions to be raised

  • ignore : suppress exceptions. On error return original object.

[01. Part 1) 데이터 핸들링 Chapter 06. 데이터 이쁘게 보기 - 데이터 시각화 - 01. matplotlib 기초]

// python 에서 대중적으로 쓰는 시각화 모듈이다.

 

* matplotlib 이란

 - 파이썬에서 차트나 플롯으로 데이터를 시각화하기 위한 모듈로 사용이 간편하고 다양한 그래프를 제공해서 많이 사용된다.

// seaborn, boat ??? 그런 프로그램이 있다.

 

 - matplotlib을 이용해서 그릴 수 있는 대표적인 그래프는 다음과 같다.

  . 꺽은선 그래프 -> line plot

  . 산점도 -> scatter plot

  . 막대 그래프 -> bar chart

  . 히스토그램 -> histogram

  . 박스 플롯 -> box plot

 - pandas 의 객체에서도 메서드로 matplotlib의 함수를 사용할 수 있다.

// pandas 에서도 사용할 수 있다. 그 의미는 굳이 matplotlib 을 import 하지 않고, pandas에서 불러와서 쓸수 있다는 것이다.

 

* 기초 환경 설정

 - pyplot.rcParams 를 이용한 폰트 설정 및 그래프 크기 설정

// 기본적인 환경을 셋팅하는 함수라고 보면된다.

  . rcParams['font.family'] : 폰트 설정 (특히, 한글을 쓰는 경우에 반드시 설정 필요)

// matplotlib 에서는 한글을 지원하지 않기 때문에 네모박스처럼 알아 볼 수 없는 것으로 나온다.

  . rcParams['font.size'] : 글씨 크기 설정

  . rcParams['figure.figsize'] : (x, y) 꼴의 튜플로 그래프의 크기를 설정

// 10, 5 정도로 하면 적당한 그림의 크기기 나온다고 보면 된다.

 

* 쥬피터에서 그래프 그리기

 - 쥬피터의 매직 키워드인 %matplotlib inline을 이용하면 셀에 그래프를 직접 출력할 수 있다.

 - 쥬피터를 사용하지 않는 경우에는 plt.figure( ) 를 사용해서 그래프 객체를 일일이 생성하고 저장해야 하지만, 쥬피터에서는 한 셀에서 그래패를 그릴 떄마다 하나의 객체가 생성된다.

// 이 강의에서는 jupyter notebook을 기초로 하기 때문에 failed show 등에 대해서는 다루지 않는다.

  . 한 셀에서 plt의 함수를 사용하여 그래프를 그리면 하나의 객체에 누적해서 그래프가 생성된다.

// 중첩을 하지 않기 위해서는 각 셀을 나눠서 plt 를 작업을 해야 한다.

  . 그래프를 다 그린 후에는 plt.savefig(file, dpi) 를 사용하여 그래프를 저장할 수 있다.

// dpi 는 보통 300 으로 설정한다.

 

* 자주 사용되는 색상 설정

 - 다양한 그래프에서 색상을 설정해야 하며, 자주 사용되는 색상 및 입력은 다음과 같다.

// 직관적으로 결과를 보기 때문에 색상에는 크게 신경쓰지는 않는다.

 

 

* 자주 사용되는 마커 및 선 스타일 설정

 - 마커란 하나의 데이터 포인트 (샘플)을 나타내는 기호를 나타낸다.

 - 선 스타일은 꺽은선 그래프의 선 스타일을 의미한다.

// 별, 더하기, 다이아몬드 등을 주로 쓴다.

 

* label 및 title 설정

 - label 이란 축의 이름을 의미하며, plt.xlabel과 plt.ylael을 사용하여 정의할 수 있다.

  . plt.xlabel(label, **kwargs) : label (str) 로 xlabel을 설정

  . plt.ylabel(label, **kwargs) : label (str) 로 ylabel을 설정

  . **kwargs : 텍스트의 특성을 설정하는 키워드 (예: fontproperties, fontsize, fontstyle 등)

// 앞서봤던 기초 환경에서 쓰는 rcParams와 달리 keyword로 의한 텍스트 특성은 라벨을 적용할 때 쓰이는 것이다.

 

 - title 이란 그래프의 이름으로, plt.title 을 사용하여 정의 할 수 있다.

  . plt.title(label, loc) : label (str) 로 title 을 설정 (loc : 위치 {'center', 'left', 'right'})

// loc 은 잘 설정하지 않는다. 주로 center

 

* tick 설정

 - tick이란 그래프에서 나타내는 눈금을 의미하며, plt.xticks와 plt.yticks을 이용하여 설정할 수 있다.

  . plt.xticks(ticks, lables) : ticks (위치)에 labels를 입력 (x축)

  . plt.yticks(ticks, lables) : ticks (위치)에 labels를 입력 (y축)

 - 사용 예시 : plt.xticks([1,2,3,4,5], ['a', 'b', 'c', 'd', 'e'])

* legend 설정

 - legend (범례)를 표시하려면 plt.legend(loc)을 사용하여 범례를 표시할 수 있다.

  . loc : 범례 위치 {'upper right' (1), 'upper left' (2), ....}

 - 단, 범례를 표시하려면 그래프를 그릴 때 label 키워드를 사용하여 범례를 정의해야 한다.

 

* 축 범위 설정

 - plt.xlim(left, right) : x축의 범위를 (left, right) 로 설정

 - plt.ylim(bottom, top) : y 축의 범위를 (bottom, top) 로 설정

 

 

[파이썬을 활용한 데이터 전처리 Level UP-Comment]
마스킹 검색과, 문자열 검색 기본적인 문법에 대해서 배워 볼 수 있었다. matplotlib 에 대해서는 기초적인 이론을 배웠고 추후 강의시간에 실습을 통해서 적용해 볼 수 있을 것이다.

 

https://bit.ly/3m7bW22

 

파이썬을 활용한 데이터 전처리 Level UP 올인원 패키지 Online. | 패스트캠퍼스

데이터 분석에 필요한 기초 전처리부터, 데이터의 품질 및 머신러닝 성능 향상을 위한 고급 스킬까지 완전 정복하는 데이터 전처리 트레이닝 온라인 강의입니다.

www.fastcampus.co.kr



728x90
반응형
:
Posted by 패치#노트