*
pandas
> 고수준의 자료 구조를 다루는데 적합한 여러 가지 함수 제공
> 파이썬을 통한 빠르고 쉬운 데이터 분석 도구를 포함
> 고성능의 과학계산 컴퓨팅과 데이터 분석에 필요한 기본 패키지
Series
> 일련의 객체를 담을 수 있는 1차원 배열 같은 자료 구조
> 어떤 numpy자료형도 담을 수 있음
> 색인이라고 하는 배열의 데이터에 연관된 이름을 가지는 구조
> series 객체의 문자열 표현은 왼쪽에 색인을 보여주고 오른쪽에 색인값을 보여줌
> 데이터 색인 디폴트 : 기본 색인인 정수 0에서 N-1까지 숫자 표시
> series의 배열과 색인 객체는 각각 values와 index속성을 얻을 수 있다
import pandas 로 pandas 호출
Series 생성하기
Series의 배열과 색인 객체는 각각 values와 index 속성을 통해 얻을 수 있다.
각각의 데이터를 지칭하는 색인을 지정해 Series 객체를 생성하는 경우는 값과 index를 지정 가능
Series는 index의 개념을 두가지로 해석
> 1. key를 가지고있지 않은 대상에게 index를 쓰면 차례대로 해당 key부여
> 2. 이미 key값이 있는 Series에 index를 쓰면 매칭되는 키를 출력하라는 명령(이름을 부여하는게 아님)
Series는 색인을 이용한 접근이 가능하다.
Series - 2
> Series는 고정 길이의 정렬된 딕셔너리 형태
> 파이썬의 딕셔너리를 인자로 받아야 하는 많은 함수에서 딕셔너리를 대체 사용 가능
> 파이썬 딕셔너리 객체로부터 Series 객체 생성 가능
> 리스트 객체나 array 객체도 Series 객체로 가능하나 index 값이 없음
이미 생성되어진 딕셔너리 형태의 객체를 Series로 변환하면 자동으로 key 값으로 정렬되어 저장됨.
=> 기존 데이터에 index 값을 지정하여 index 순서대로 선택 출력 가능.
매칭되지 않는 index 값은 NaN으로 표시되며 누락된 값 또는 NA로 취급된다.
NA 값 삽입하는 법
NA 를 삽입하면 문자열로 들어가기 때문에 np.nan을 사용해 삽입한다.
isnull과 notnull 함수를 사용하여 Series객체에 저장되어 있는 NA 값의 존재 여부 확인 가능.
isnull은 Series의 메서드로도 제공됨.
함수에 any (하나 이상의 True 값이 있는지 검사해주는 메서드)사용시 NA값이 하나라도 있을시 True(False)반환
pd.isnull : NA값을 True로 반환
pd.notnull : NA값을 False로 반환
series의 산술연산
> Series의 산술연산은 각 색인 값 끼리 연산된다
> NaN 값의 산술연산의 결과는 항상 NaN
> 모든 Series 객체에 존재하는 index value에 대해서만 연산 가능, 그렇지 않으면 NaN 값 반환
같은 key가 매칭되는 색인 값 끼리의 산술연산 시행.
Series객체와 Series의 색인은 name을 지정할 수 있다.
Series의 색인은 대입을 통해 변경할 수 있다.
DataFrame
> * dataframe의 키는 컬럼이다
> 각 컬럼은 서로 다른 타입의 값을 담을 수 있다
> Dataframe에서의 로우 연산과 칼럼 연산은 거의 대칭적으로 취급
> 내부적으로 2차원 형식으로 저장 -> 고차원 표 형식 데이터를 계층적 색인을 통해 표현
> 같은 길이의 리스트가 담긴 사전, numpy배열을 이용하여 주로 생성
DataFrame의 생성
만들어진 dataframe은 각 행의 번호가 색인형태로 자동으로 대입(0,1,2 순...)
만들어진 dataframe은 컬럼 이름별로 자동으로 정렬
DataFrame구조에서 컬럼 이름을 통한 색인 가능.
컬럼 이름을 순서대로 나열해 컬럼배치 재설정 가능(이름 지정 아님)
※ 이름 지정은 index를 이용하여 행의 이름 변경 가능.
- 매칭되지 않는 컬럼을 넘길 경우 NA값이 저장.
> index : row의 이름 출력
> columns : 컬럼 이름 출력
컬럼의 색인
1. 하위 호출(df.keyname)
2. 이름 전달(df['keyname'])
3. 색인 메서드 사용(loc,iloc)
loc, iloc등의 색인 메서드 사용으로도 호출할 수 있다.
(ix를 사용하면 row우선순위, 사용하지 않으면 column 우선순위)
ix 메서드로 row 이름을 가지고 특정 row에 해당 하는 값만 출력, 행과 열에 대한 간결한 재색인이 가능했으나
현재 warning메시지가 뜨는 메서드이기 때문에 라벨색인(라벨이 하나라도 존재할때)은 loc, 정수색인은 iloc를 사용한다.
'Python > iPython' 카테고리의 다른 글
ipython - pandas 3 (0) | 2019.02.14 |
---|---|
ipython - pandas 2 (0) | 2019.02.07 |
ipython - numpy 2 (0) | 2019.01.31 |
ipython - numpy 1 (0) | 2019.01.30 |