코딩못하는사람

pandas 모듈 (2) 본문

머신러닝,마이닝

pandas 모듈 (2)

공부절대안함 2020. 10. 20. 01:36

1.2 핵심 기능

1.2.1 reindex 재색인

Series객체에 대해서 reindex를 호출하면 데이터를 새로운 색인데 맞게 재배열하고 존재하지 않는 색 이 있다면 NaN을 추가

obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c'])

obj2 = obj.reindex(['a', 'b', 'c', 'd', 'e'])  #원하는순으로 출력한 것

a -5.3

b 7.2

c 3.6

d 4.5

e NaN   #e는 없었으므로

 

method='ffill'을 추가하면 여 누락된 값(NaN)을 직전의 값으로 채워 넣을 수 있다

칼럼과 인덱스 둘다 reindex가 가능하다. 

 

1.2.2 하나의 로우나 컬럼 삭제 하기

drop 메서들를 사용하여 선택한 값들이 삭제된 새로운 객체 얻기 가능

del은 그냥 frame에서 컬럼을 삭제하는 것이지만 drop은 새로운 객체를 선언하지않으면 본 프레임은 바뀌지않음.

axis를 설정하여 0이면 가로로 줄을 지우고 1이면 세로로 줄을 지운다.(1은 axis=columns와 같음)

 

1.2.3 색인하기, 선택하기, 거르기

Series에 인덱스는 숫자or라벨 값으로 접근 가능하다.

obj = pd.Series(np.arange(4.), index=['a', 'b', 'c', 'd'])일 때

obj['b']와 obj[1]이 같다는 뜻이다.

하나 알아두어야 하는 것은 슬라이싱에 있어서 라벨값으로 슬라이싱할때 obj['a':'b']라면 a,b둘다 포함한다는 것이 다르다.( obj[0:1]이면 0만포함)

 

Frame에서의 iloc과 loc은 칼럼까지 접근가능하지만 행이 앞에 나오고 뒤에 따라오는 형식으로 가능하다.

data.loc['Colorado', ['two', 'three']] #콜로라도가 인덱스의 라벨이고 two,three는 칼럼의 라벨

data.iloc[[1, 2], [3, 0, 1]] #행이 나오고 열이면 iloc도 가능. 슬라이싱도 가능하다.

※정수 순서대로 색인되어있을때는  마지막행을 -1로 찾을 수 없고 iloc[-1]로 접근해야한다.(라벨되있을때는 상관없음)

 

1.2.4 산술 연산과 데이터 정렬

pandas에서 가장 중요한 기능 중 하나는 다른 색인을 가지고 있는 객체 간의 산술 연산 객체를 더할때 같은 색인이 있다면 결과에 두색인이 통합.서로 겹치는 색인이 없는 경우 색인이 생기면서  데이터는 NA 값.

df1 = pd.DataFrame({'A': [1, 2]})

df2 = pd.DataFrame({'B': [3, 4]})

df1 + df2

   A  B

0 Na Na

1 Na Na

 

브로드 캐스팅을이용해서 많은 계산이 가능.  numpy에서 하던것처럼 배열의 크기나 축의 길이가 딱 맞지않아도 없는곳은 NaN 처리하면 되므로 자주 일어난다.

 

apply 메서드

f = lambda x: x.max() - x.min()

함수를 설정하고 apply에 (func,axis)를 넣으면 axis는 0,1에 따라 세로의 series(0)에 대해서 계산할지 가로의 데이터series(1)에 대해서 계산할지 결정된다. 생략시 0

frame.apply(f,axis=0)을하면 칼럼에 따른 Series들 칼럼마다의 최대값-최솟값이 나올 것이다.

 

 

1.2.5 정렬과 순위

sort_index() ->인덱스를 정렬해서 나타냄. axis=1이되면 칼럼을 정렬해서 나타냄

sort_values()-> 값들을 기준으로 정렬해서 나타냄.

ascending=False를 하면 내림차순으로 정렬됨.

by를 넣으면 어떤 칼럼기준으로 먼저 할지도 설정가능

frame.sort_values(by='b')    #b 칼럼만 기준으로
frame.sort_values(by=['b','a'])  #b칼럼 기준으로 한것중에 a칼럼 기준

 

rank() 는 오름차순으로 작은것부터 순위를 메겨줌.

 

1.3 기술 통계 계산과 요약

sum()  #axis에 따라 합을 구해주는 함수

mean() #axis에 따라 평균을 구해주는 함수

(skipna=False인자를 가질 수 있다.)

idxmax(),idxmin() 최대 or 최소 인덱스를 반환해준다.

cumsum() #axis에 따라 누적합을 구해준다.

describe() #최대,최소 25% 50% 75% count std(표준편차),평균등의 결과를 나타내줌

count() #몇개있는지 알려주는함수

 

 

'머신러닝,마이닝' 카테고리의 다른 글

pandas 모듈 Series,DataFrame  (0) 2020.10.19
numpy모듈(2) 실습  (0) 2020.09.28
Perceptron 신경망  (1) 2020.09.18
Numpy모듈  (1) 2020.09.17
Comments