데이터 분석 과정 및 R과 PYTHON의 차이

2 minute read

1. 데이터분석 전체 수행 과정

수행 모듈 세부 단계
1.분석 기획 1) 왜 수행해야 하고, 무슨 결과를 내야 하고, 어떻게 결과를 만들까를 계획함
2. 데이터 수집 1) 회사 내부의 데이터 활용
  2) 외부에 오픈되어 있는 데이터
  3) 오픈 되어 있지 않은 데이터(회사간 업무협조)
  4) 데이터를 새롭게 만듬
3. 탐색적 분석 1) 통계량 작성
  2) 그래프 그리기
  3) 전체 데이터를 다 처리해서 분석하기 어려우면 샘플링해서 진행함
4. 데이터 전처리 1) 전체 데이터에서 일부 데이터를 extraction(추출)
  2) 데이터의 구조를 변경함(melt, cast 등)
  3) 기존 데이터를 대체함(ex 시,분,초를 생략하고 일까지만 사용함)
  4)정규화 등 데이터의 변화가 필요한 상황(log변환, 박스콕스 변환, 표준점수 등))
  5)새로운 데이터 생성(기존 관련있는 데이터를 추가적으로 생성해줌, 군집분석 결과 추가)
5. 모델 수립 1) 기초통계 자료를 통해 세부적 가설을 정리함
  2) 보통 한가지만 선택하지 않고 다양한 모델을 수립해서 모델을 서로 비교하여 최적의 모델을 선정함
  ※ 성공적이지 못하면 데이터수집 단계로 돌어가서 다시 수행함
6. 분석결과 정리 및 보고서 작성 1) 모델을 정교하게 정리하고 해당 결과를 보고서로 작성함
  ※ 데이터 분석가의 역할은 여기까지
7. 프로그램 개발 1) 실제 서비스 하는 부분에서는 모델의 정확도적인 부분보다 성능(속도)이 중요한 이슈가 됨
8. 프로그램 운영 1) 개발된 프로그램을 서비스 활용하고 고객들의 반응을 확인함

2. R과 PYTHON의 차이

  R PYTHON
색인_인덱싱 DF[1] #1열 DF[1] #1열
색인_슬라이싱 DF[1:3] # 1:3열 DF[1:3] # 1:3행
  DF[1,3:5] DF.loc[1,3:5] or iloc 사용
데이터 속성 파악 class(DF) TYPE(DF)
데이터 속성 요약 summary describe
view의 속성 DF = DF2 # DF에서 수정하면 DF2는 변화X DF = DF2 # DF수정하면 DF2도 변경
DF 선택 DF[‘열이름”] DF[[‘열이름’]]
DF의 구조 dim(DF) shape(DF)
변수명 변경1 rename(DF, old_nm=new_nm) DF.rename(columns = {‘old_nm’ : ‘new_nm’), inplace = True)
변수명 변경2 names(DF) <- c(‘v1’ , ‘v2’)  
프로그램 방식 Function OOP(객체 지향 프로그램) 맴버변수 활용(.TAB 활용)
주로 사용하는 데이터 타입 백터/Matrix(2차원) 1d array/ 2d array
물리적 메모리 저장방식 열방향으로 저장함 행방향으로 저장함
LIST 활용 함수를 수행한 결과를 보통 LIST로 출력함 LIST를 다양한 목적으로 활용
DF 형식 파악 dim() shape()
인덱스 시작 1부터 시작 0부터 시작

3. dplyr함수

**%>% 파이프 연산자 ** : 왼쪽에 나온 결과를 오른쪽의 함수로 넣는다.(dplyr에서 자주 사용함)

  • 내부적으로 C언어로 구성되어 있기 때문에 base함수보다 빠른 연산이 가능함

  • 임시로 중간중간 데이터프레임을 만들지 않아도 되기 때문에 메모리를 절약할 수 있음

dplyr 함수 기능
filter() 행추출
select() 열추출
arrange() 정렬
mutate() 변수 추가
summarise() 통계치 산출
group_by() 집단별로 나누기
left_join() 데이터 합치기(열)
bind_rows() 데이터 합차기(행)

4. R의 독특한 특성

# 해당 방식으로 칼럼 명을 작성할 수 있음
df_midterm <- data.frame(english <- c(90, 80, 60, 70),
                         math <- c(50, 60, 100, 20),
                         class <- c(1, 1, 2, 2))

df_midterm
 english....c.90..80..60..70. math....c.50..60..100..20.
1                           90                         50
2                           80                         60
3                           60                        100
4                           70                         20
  class....c.1..1..2..2.
1                      1
2                      1
3                      2
4                      2

#화살표가 아니라 등호를 사용하면 데이터를 넣어줌

df_midterm <- data.frame(english = c(90, 80, 60, 70),
                         math = c(50, 60, 100, 20),
                         class = c(1, 1, 2, 2))
df_midterm

 	english math class
1      90   50     1
2      80   60     1
3      60  100     2
4      70   20     2



Leave a comment