Python/Pandas

12. Pandas 정리 - 객체 (Series, DataFrame), 인덱싱

frcn 2020. 2. 26. 18:57
반응형

1. Series   # pd.Series(data, index = [ ])

Series는 데이터의 1차원 배열이라고 할 수 있다.

 

numpy배열이며, 값은 values로 인덱스는 index로 접근할 수 있다.

 

이 때, values는 Numpy배열이다.

 

 

인덱스를 이용하여, 특정 값에 접근할 수 있다.

 

 

Numpy와는 다르게 인덱스 값을 설정할 수 있다. (np는 정수열 인덱스만 가능)

 

 

인접하지 않는 정수형 인덱스를 설정할 수도 있다.

 

인덱스를 키라고 생각한다면, Series배열은 딕셔너리형 객체라고 생각해도 무방하다.

 

 

 

2. DataFrame  # pd.DataFrame(ndarray, index = [ ], column = [ ])

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html

 

데이터프레임은 Series 객체의 집합체.

 

1) 하나의 Series를 이용해 만들 경우.

 pd.DataFrame(cars, columns = [ ' name ' ] )

 

 

2) 다수의 Series를 이용해 만들 때는 딕셔너리처럼 생성하면 된다.

   pd.DataFrame( { 'column' : a, 'column2' : b} )

DataFrame.index 를 하면 인덱스(행) 속성 반환.

DataFrame.columns 를 하면 칼럼(열) 속성 반환.

 

 

 

3. 인덱싱, 슬라이싱

데이터프레임에서도 인덱싱 (arr[1, 2]), 슬라이싱 (arr[ : , 1 : 3 ]), 마스킹 (arr [ arr > 0 ]), 팬시인덱싱 ( arr[ 0, [1, 3] ]) 모두 가능하다.

 

1) Series에서의 인덱싱

 

딕셔너리와 유사하게 사용하면 된다.

 

Series.keys( )

list( Series.items( ) )

 

2) Series 슬라이싱

 

키값을 사용해도 되고, 정수 인덱스를 활용해도 됨.

명시 슬라이싱과 암묵 슬라이싱때문에 혼동이 발생할 수 있기 때문에 loc, iloc를 주로 사용한다.

 

Series.loc[ ] -> 무조건 명시적 인덱스를 사용.

Series.iloc[ ] -> 무조건 암묵적 인덱스를 사용.

 

 

3) DataFrame에서의 인덱싱

 

DataFrame은 Series의 딕셔너리이다.

 

일단 DF를 하나 만들어 보자.

 

 

열에 접근하는 방식은 인덱싱을 이용 또는 속성을 이용하는 방법이 있다.

 

열을 추가해보자. (1인당 차 개수)

 

DF.values -> 데이터만 보기

DF.T -> 행과 열을 바꾸기

 

4) 데이터프레임에서의 loc, iloc

 

Series와 똑같이 iloc, loc를 사용할 수 있다.

 

iloc은 정수형 인덱스를 사용하며, loc는 실질 인덱스를 사용한다.

 

슬라이싱은 기본적으로 행을 기준으로 한다.

반응형

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

pd.groupby / pivot_table (집계연산)  (0) 2020.03.27
pd.concat / df.append / pd.merge  (1) 2020.03.13
14. Pandas - 다중인덱싱(Multi Index)  (0) 2020.03.12
13. Pandas - 결측값(Nan, None)  (0) 2020.03.04