반응형

7.2.1 중복 제거하기

DataFrame의 duplicated메서드는 각 로우가 중복인지 아닌지 알려주는 불리언 Series를 반환한다.

data.duplicated()

 

drop_duplicates 는 dupliacated배열이 False인 DataFrame을 반환한다.

data.drop_duplicates([컬럼이름])

keep = 'last'옵션을 넘기면 마지막으로 발견된 값을 반환한다.

 

7.2.2 함수나 매핑을 이용해서 데이터 변형하기

Series의 map 메서드는 사전류의 객체나 어떤 함수를 받을 수 있는데, 위 데이터는 대소문자 섞여 있는 사소한 문제가 있으므로 str.lower메서드를 사용해서 모두 소문자로 변경한다.

lowercased = data['food'].str.lower()

meat_to_animal  => dictionary

data['animal'] =  lowercased.map(meat_to_animal)

data['food'].map(lambda x:meat_to_animal[x.lower]  )

 

7.2.3 값 치환하기

fillna메서드를 사용해서 누락된 값을 채우는 일은 일반적인 값 치환 작업이라고 볼 수 있다.

replace() 메서드를 이용하면 값을 pandas에서 인식할 수 있는 NA값으로 치환한 새로운 Series 를 생성 할 수 있다.

inplace = True

data.replace(,np.nan)

 

7.2.4 축 색인 이름 바꾸기

transform = lambda x: x[:4].upper()

data.index = data.index.map(transform )

data.rename메서드를 사용한다. 원래 객체를 변경하지 않고 새로운 객체를 생성하려면 

원본 데이터를 바로 변경하려면 inplace = True옵션을 넘겨주면 된다.

 

7.2.5 개별화와 양자화

연속성 데이터는 종종 개별로 분할하거나 아니면 분석을 위해 그룹별로 나누기도 한다.

pandas.cut으로 categorical 로 

ages list

bins list 

 

cats = pd.cut(ages, bins)

이 객체는 그룹 이름이 담긴 배열이라고 생각하면 된다.

 

이 Categorical 객체는 codes 속성에 있는 ages 데이터에 대한 카테고리 이름을 categoricals라는 배열에 내부적으로 담고 있다.

 

pd.value_counts(cats)는 pandas.cut결과에 대한 그룹수다.

 

간격을 나타내는 표기법은 중괄호로 시작해서 대괄호로 끝나는데 중괄호 쪽의 값은 포함하지 않고 대괄호 쪽의 포함하는 간격을 나타낸다.

right = False를 넘겨서 중괄호 대신 대괄호 쪽이 포함되지 않도록 바 꿀 수 있다.

labels 옵션으로 그룹의 이름을 직접 넘겨줄 수도 있다.

percision = 2옵션은 소수점 아래 2자리까지로 제한한다.

qcut 4분위로 분류

 

7.2.6 특잇값을 찾고 제외하기

outlier 을 제외하거나 적당한 값으로 대체하는 것이 중요하다.

data.describe()

nay 메서드

np.sige()

 

7.2.7 치환과 임의 샘플링

numpy.random.permutation함수를 이용하면 Series나 DataFrame의 로우를 쉽게 임의 순서로 재배치할 수 있다.

permutation 함수로 넘기면 바뀐 순서가 담긴 정수 배열이 생성된다.

배열은 iloc 기반의 색인이나 take함수에서 사용가능하다.

치환 없이 일부만 임의로 선택하려면 Series나 DataFrame의 sample메서드를 사용하면 된다

sample에 replace = True옵션 : 표본을 치환을 통해 성성해내려면

 

7.2.8 표시자/ 더미 변수 계산하기

통계 모델이나 머신러닝 애플리케이션을 위한 또 다른 데이터 변환은 분류값을 '더미'나 '표시자' 행렬로 전환하는 것이다.

get_dummies가 이를 위한 함수인데 독자 스스로 새로운 방법을 고안해내는 것도 어렵지 않을 것이다.

 

표시자 DataFrame안에 있는 컬럼에 접두어 prefix를 추가한 후 다른 데이터와 병합하고 싶을 경우가 있다.

get_dummies함수의 prefix 인자를 사용하면 이를 수행할 수 있다.

get_dummies 와 cut같은 이산함수를 잘 조합하면 통계 애플리케이션에서 유용하게 사용할 수 있다.

numpy.random.see 함수를 이용해서 난수 시드값을 지정했다.

pandas.get_dummies 

 

7.3 문자열 다루기

파이썬은 문자열이나 텍스트 처리의 용이함 덕분에 원시 데이터를 처리하는 인기 있는 언어가 되었다.

복잡한 패턴 매칭이나 텍스트 조작은 정규 표현식을 필요로 한다.

pandas는 배열 데이터 전체에 쉽게 정규 표현식을 적용하고 , 누락된 데이터를 편리하게 처리할 수 있는 기능을 포함하고 있다.

 

7.3.1 문자열 객체 메서드

split 메서드

[x.strip() for x in val.split(',')]

join 메서드로 연결

 

일치하는 부분 문자열의 위치 를 찾는 방법 index나 find  in

index의 경우 문자열을 찾지 못하면 예외를 발생시킨다는 것이다.

count는 특정 부분문자열이 몇 건 발견되었는지 반환한다.

replace 는 찾아낸 패턴을 다른 문자열로 치환한다.

반응형

+ Recent posts