반응형

비율을 사용할 경우 전체의 합이 1이 되는지를 확인 하는 방법이 Sanity Check 입니다.

만약, 1보다 작거나, 크다면 잘못된 계산이므로 반드시 체크 하는 것이 좋습니다.

 

Sanity Check할 때 사용하는 라이브러리는 numpy 입니다. 따라서, 우선 numpy를 Load 한 후 사용 해야 합니다.

 

import numpy as np

np.allclose(names.groupby(['year', 'sex']).prop.sum(), 1) 

 

위 코드가 실행 된 이후 "True" 가 표시 되면 잘 처리된 결과 이지만 "False"가 출력 되면 잘못 된 경우이니 꼭 체크하고 넘어가야 합니다.

 

항목 별 카운트 확인 하기 위해서는 TABLE.value_counts()를 활용하면 됩니다.

 

# 라이브러리 선언

%matplotlib inline
from pandas import DataFrame
import pandas as pd
import numpy as np

# 파일 로딩 및 테이블 생성

UserInfo = pd.read_csv('testcase.txt', sep='\t', names=['date', 'ip', 'account', 'money', 'id'])
DF_UserInfo = DataFrame(UserInfo)

ip_count = DF_UserInfo['ip'].value_counts()   <--- 중복된 IP 카운트 저장

 

# 분류한 데이터 출력

ip_count

 

[ 출력 ]

127.0.0.1 499 127.0.0.2 114 127.0.0.3 86

 

컬럼에 존재하는 특정 값의 카운트를 확인하는 자체 함수 입니다.

 

def get_counts(seq):
    counts = {}
    for x in seq:
        if x in counts:
            counts[x] += 1
        else:
            counts[x] = 1
    return counts

 

counts = get_counts(UserInfo['ip']) 

counts['106.187.44.5']

 

 

 

 

 

반응형

+ Recent posts