산술연산과 데이터 정렬



산술연산


객체를 더할 때 짝이 맞지 않는 색인이 있다면 결과에 두 색인이 통합된다.



서로 겹치는 색인이 없다면 데이터는 NA 값이 된다.
산술연산 시 누락된 값은 전파되며, DataFrame에서는 로우와 칼럼 모두에 적용된다.

NA 값을 치환할 때는 fill_value 값을 지정



산술연산 메서드



일반 array의 산술 연산(브로드캐스팅 기능)


DataFrame과 Series간의 연산은 앞의 브로드캐스팅 기법과 유사

만약 색인 값을 DataFrame의 칼럼이나 Series의 색인에서 찾을 수 없다면, 그 객체는 형식을 맞추기 위해 재색인된다



python의 분산 구하기


두 var의 결과가 다른 이유는 np.var와 pd.var에서 제공하는 자유도(ddof)가 서로 다르기 때문

Series구조는 자동으로 pd.var 적용(ddof = 1)
a1.var()는 np.var, s1.var()는 pd.var 적용




함수 적용과 매핑

- 각 컬럼별 로우별 함수 적용(축 값 지정)



[파이썬 적용함수]


1. map함수
- map(function, **iterable)
- 1차원 원소별 적용 가능
- 리스트 출력
- 다수의 인자 전달 시 각 인자의 크기 일치 필요

2. map메서드
- data.map(function, **iterable)
- 1차원(Series) 원소별 적용 가능
- 다수의 인자 전달 시 각 인자 크기 일치 시킬 필요 없음

3. apply 메서드
- data.apply(function, axis)
- 행별(axis=0), 열별(axis=1) 적용 가능
- 주로 그룹함수와 함께 사용
- 출력 결과 Series

4. applymap 메서드
- data.applymap(function, **iterable)
- 2차원 원소별 적용 가능
- 출력 결과 DataFrame



# applymap은 row나 컬럼별로 작동하는 함수가 아니라, 각 요소별로 작동을 한다.
# 자체가 그룹함수라면 동시에 여러개가 전달되어서 요구되는 apply와 잘 어울림




정렬과 순위




sort_index 메서드
- 키 이름별 정렬
- 로우, 칼럼의 색인을 알파벳 순으로 정렬하여 새로운 객체 반환
- 지정된 축 별 정렬 가능


Series의 value 값에 따라 정렬하려면 sort_values 메서드 사용



rank
- rank(순위)는 정렬과 거의 흡사하며 1부터 배열의 유효한 데이터 개수까지 순위를 매김
- 순위는 numpy.argsort에서 반환하는 간접 정렬 색인과 유사한데, 동률인 순위를 처리하는 방식 다름
- 기본적으로 Series와 DataFrame의 rank 메서드는 동점인 항목에 대해서는 평균 순위를 매김


rank method


- first: 데이터상 순서에 따라 순위
- max: 같은 값을 가지는 그룹을 높은 순위
- min: 같은 값을 가지는 그룹을 낮은 순위
- average: 같은 값을 가지는 항목의 평균 값을 순위로 삼음




상관관계와 공분산






- corr 메서드 : 상관관계 행렬 또는 상관관계 값 리턴, 다중공선성 문제 확인에 사용


- cov 메서드 : 공분산 행렬 또는 공분산 값 리턴


- corrwith 메서드 : 서로 다른 DafaFrame과 Series의 상관관계 계산


※ 다중공선성: 모델 만들때 서로 다른 변수들끼리 높은 상관관계를 가지고 있으면

그 모델 추정시 정확도가 떨어지는 현상




기술통계 계산과 요약



- idxmax 메서드 :

각 축 별 최대 값을 갖는 index 값 리턴


- describe 메서드 :
수치형 데이터일 경우 각 통계 지표를, 문자형 데이터일 경우 요약 통계 반환


- cumsum 메서드 : 누적 합




기술통계와 요약통계 메서드





유일 값, 값 세기, 멤버십



- Unique 메서드 : 중복 값 제거(정렬되지 않음)




in 연산자



in 연산자는 벡터연산이 불가(반복 연산 불가능)


map(lambda)적용으로 벡터연산 수행



isin 메서드



- isin 메서드 : 어떤 값이 Series에 있는지를 불리언 배열 형태로 반환
- Series나 dataframe 컬럼에서 값을 골라내고 싶을 때 유용하게 사용



fillna 함수를 이용하여 비어있는 값 치환



다양한 fillna 치환


fillna 함수는 컬럼별로 다른 값을 치환 할 수 있다.

(치환 할 값을 딕셔너리 형태 {} 로 전달)


method = 'ffill' 옵션을 사용하여 이전 행 값으로 치환 가능.



dropna


- dropna() : 하나라도 NA값이 있는 row 삭제

- dropna(axis=1) : 하나라도 NA값이 있는 colums 삭제

(하나라도 NA가 있으면 컬럼이 날아가기 때문에 위험한 방법)




- how = 'all' : 모든 row가 NA일시에만 row를 삭제하는 옵션


- thresh = n : n개의 누락된 값이 포함된 row를 출력




'Python > iPython' 카테고리의 다른 글

ipython - pandas 2  (0) 2019.02.07
ipython - pandas 1  (0) 2019.02.01
ipython - numpy 2  (0) 2019.01.31
ipython - numpy 1  (0) 2019.01.30

+ Recent posts