파이썬 분석 실무, 유저 Funnel 분석 - (5) 데이터 전처리

|

python 분석 실무, 유저 funnel 분석

데이터 전처리

나중에 데이터를 탐색하거나, 데이터를 프로세싱을 진행할 때 편하도록 전처리를 진행한다. 여기에서는 데이터 값 중 같은 항목을 하나의 이름으로 통일시키고, 불필요하게 긴 데이터를 짧게 줄였다.

확장자명 통일

  • .value_counts()
    • 해당 값들 항목별 숫자 출력해줌
  • .replace(dict)
    • 미리 지정해둔 값으로 교체
    • 바꾸고 싶은 값만 dict으로 지정하여 교체할 수 있음
df.ext.value_counts()

# PDF      82004
# DOCX     58303
# XLSX     52118
# HWP      26244
# DOC      24586
# XLS      24489
# PPTX     15385
# TXT       9814
# PPT       5382
# PPSX      2374
# ODT        820
# PPS        324
# JPG          9
# SHEET        5
# WORD         2
# PNG          2
# Name: ext, dtype: int64

ext_dic = {'DOCX': 'DOC',
           'XLSX': 'XLS',
           'PPTX': 'PPT',
           'PPSX': 'PPT',
           'PPS': 'PPT',
           'ODT': 'TXT',
           'PNG': 'JPG'
          }

df['ext'] = df['ext'].replace(ext_dic)
df.ext.value_counts()

# DOC      82889
# PDF      82004
# XLS      76607
# HWP      26244
# PPT      23465
# TXT      10634
# JPG         11
# SHEET        5
# WORD         2
# Name: ext, dtype: int64

신규 session_id 부여

필수는 아니나, 계산량 감소를 위해 텍스트 사이즈 감량 진행

  • DataFrame.ix[]
    • 데이터프레임의 정보를 인덱스로 호출 하는 속성값
    • [_] 내부 인자로 숫자와 함께 칼럼명 같이 사용이 가능함
    • DataFrame.loc[], DataFrame.iloc[]와 같은 indexer이지만, 숫자와 칼럼명같이 쓰는데에 유용함.
    • 한 행씩 돌면서 값에 처리를 할 때 유용함

.ix is exceptionally useful when dealing with mixed positional and label based hierarchical indexes.

pandas 0.23.4 documentation

s = [] # empty list
j = 0 # default setting

# loop
for i in range(len(df)-1):
    
    if df.ix[i, 'sessionid'] == df.ix[i+1, 'sessionid']:
        s.append(j)
    else:
        s.append(j)
        j += 1

실습 파일 확인하기