글쟁이, 코딩한다

1215 / K_digital 7일차 / 파이썬(기초함수, pandas) 본문

나는 코딩도 한다/TIL

1215 / K_digital 7일차 / 파이썬(기초함수, pandas)

Algori 2020. 12. 15. 21:07

 

0.

  K_digital 온라인 강의가 이어진다.

  파이썬의 기초함수들과 라이브러리 + 데이터에 대한 기본 이해 + 파이썬 라이브러리를 활용한 데이터 전처리를 배웠다. 여전히 기본 문법 과정이다. 따라가는 것도 여전히 어렵다. 

  데이터의 기본에 대한 것들은 추가 자료 조사를 통해 따로 공부할 필요가 있다. 오늘은 키워드만 남긴다. 기초함수와 라이브러리, 데이터 전처리는 정리해둔다.

 

 

파이썬의 기초 함수들 

1) dir( ) : 하나의 객체 변수가 지닌 함수들을 모두 보여준다. 자체적으로 상속 받은 함수들과 해당 클래스만 가진 고유 함수들도.

 

2) #절대값 abs( )  #반올림 round( ) #참과 거짓 bool( ) 

   #합 sum( ) #최대값 max( ) #최소값 min( )

 

3) 람다 함수(익명 함수) / lambda

lambda x :  y 
ex) new_func = lambda x : x**2 

#x는 input, y는 output #다양한 언어에 존재. #따로 함수 만들 필요 없이 곧바로 다른 함수 안에 넣을 수 있다. #곧바로 타 함수에 들어간다. #짧게 쓰기를 권고(조잡해짐) #다른 코드 속 긴 람다함수를 만나면 콜론을 찾자.

 

라이브러리 library

모듈 module == 하나의 py. 파이썬 파일 하나. 용도 별로 관련된 함수 따위를 모아둠. 

라이브러리 library == 여러 모듈을 모아둔 폴더(더 복잡하고 다양하게 구성하기도 함). 큰 테두리. 파이썬에서 주로 사용. 

패키지 package == 라이브러리와 흡사. 자바, C 등에서 선호.
  • 라이브러리 사용법   

1) 설치 :

cmd(명령 프롬포트)에서는 pip install new_library

  #가벼운 라이브러리 #conda가 너무 느리고 답답하면 or 라이브러리가 없으면 써보자

anaconda prompt에서는 conda install new_library

  #권장 #무거운, 예민한 라이브러리 설치 시 #충돌 관리, 추후 에러 관리에 용이 vs 느리다, 신규 라이브러리
jupyter notebook안에서는 !pip install new_library

 

2) 실행 :
 1. import 라이브러리 이름으로 부른다. -> 매번 총칭을 선택해서 불러온다. ex) import numpy -> numpy.array( )
 2. import 라이브러리 이름 as 준말 -> 준말로 부른다. ex) import numpy as nm -> np.array( )  
 3. from 라이브러리 이름 import 함수 이름 -> ex) from numpy import array -> array()

 #권장하지 않는다. 어떤 라이브러리의 함수인지 알기 어려움. 다른 라이브러리의 함수 이름이 덮일 때, 날아가기도 함.

 

# 라이브러리 권장 준말 numpy : np / pandas : pd / matplotib : plt / seaborn : sns

 

데이터

데이터의 종류

1) 정형 데이터(Structured data) 
 행과 열이 있는 데이터. 보통 업무에서 많이 만난다. 태생적인 정형 데이터. 고객 매출, 제품 정보, 인사 정보 등 
2) 반정형 데이터(Semi-structured data)
 구조는 있으나 연산 등은 어렵다. 시스템 로그, HTML 등
3) 비정형 데이터(Unstructured data)

 일상생활에서 만나는 데이터. 이미지, 영상, 사운드, 문서 등

수집과 활용

1) 자체 데이터 활용
 구글 애널리틱스(Google Analytics), 일래스틱 스택(Elastic Stack), ELK 스택(ELK Stack), 제플린(Zeppelin)
2) 타사 데이터 활용
 API, 봇(웹 크롤러, 웹 스크래퍼)  

3) 공공 데이터, 오픈 데이터 활용

 

데이터 전처리

 

1. 데이터 처리 핵심 라이브러리

 

numpy as np # 수치 계산 -> 행렬 계산
pandas as pd # 정형데이터의 입출력 & 전처리 & 기본 시각화
seaborn as sns # 시각화 #맷플로립에 있는 함수들을 모아 더 쉽고 예쁘게 쓸 수 있도록 만든 라이브러리 
matplotlib.pyplot as plt # 데이터 시각화, 행렬 기반 그래프

 

2. pandas

데이터 열기

df = pd.read_excel('excel1.xlsx', encoding='utf-8')

  #이 식을 밑 예시들의 기본 전제가 되는 식으로 #엑셀 자료와 같은 데이터가 정리된다. 다른점은 index 열의 생성

 

pandas의 기본 자료형

1) Series : Key값이 있는 List (행 기준 : 열 이름이 key값, 열 기준 : 행 이름이 key값), 하나의 행, 하나의 열 
2) DataFrame : series가 모이면 데이터프레임. 클래스 

 

DataFrame용 함수
.head( ) #가장 위 목록, 디폴트값 => 5
.tail( ) #가장 아래 목록, 디폴트값 => 5
.describe( ) #데이터프레임을 설명 / 갯수, 평균, 표준편차, 최소값, 최대값, 사분위수 등 
.info( ) #열이 가진 정보 / Non-Null Count (빈 데이터) / Dtype 

 

열 기반 series 꺼내기

  # 대다수 함수 사용은 dict와 같다. (열의 이름이 Key 값에 대응한다고 생각하자)
df['column'] => df['column']['행']  #열 먼저 꺼내고 행을 꺼내기.
df[['column1', 'column2', 'column3']]  #여러 개의 열 이름을 꺼낼 때는 List로 묶자  

새로운 열 추가

 

df['new'] = [1, 2, 3] <- list 형태로 꽂아주는 것이 기본.

  #다만 리스트의 길이가 기존 행의 길이와 같아야 한다. (행의 수가 길다면 어려움이 있다. 행의 수는 len() 으로 확인.)

df['column_new1'] = df['coulmn1'] * df['coulmn2']

  # 두 열의 값을 곱한 것을 행으로 가지는 새로운 열을 만들 수도 있다.
df['column_new'] = df['column1'].apply(lambda i : i*2)
  # 'column1'에 있는 값을 순서대로 꺼내 람다함수를 적용(apply)해 '새 열'에 추가하는 방법도 있다. 

서머리하기
 pivot_df = pd.pivot_table ('column1', index='column_standard', aggfunc=np.sum)

   
   1) index열(대장열)의 종류에 따라 행의 숫자가 결정 난다. 

    => 2) 같은 종류의 열들을 모아 겹친다 

      => 3) 집계 함수로 값을 원하는대로 정돈한다. #더하기, 평균, 최댓값 등등

  #aggfunc : aggregation function의 준말. 집계 함수


열 삭제
del df[column_1]

열 이름들 얻어내기
df.columns

 

행 이름들 얻어내기

df.index


열 이름 바꾸기
df.rename(columns = {'column1' : 'column_new1', 'column2' : 'column_new2'}, inplace=True)
  #원본을 바꾸려면 inplace 옵션을 켜줘야 한다

df_new = df.rename(columns = {'column1' : 'column_new1', 'column2' : 'column_new2'}) 

#아니면 df이름을 새로 짜주던가

 

 

 

오늘의 (다음) 공부해 볼만한 것

 

1) 비정형 데이터가 정형 데이터로 바뀌는 과정

2) 구글 콜랩의 구동과 운영

3) 구글 애널리틱스와 일래스틱 스택

Comments