pandas 객체
- DataFrame: 데이터 테이블 전체를 다루는 객체, 2차원 자료구조
- Series: 각각의 열 데이터를 다루는 객체, 1차원 자료구조
Series객체는 feature vector와 같은 개념으로 사용하고
일반적으로 하나의 feature 데이터를 포함하는 형태로 다루어진다.
매개변수
- data: 값 저장
- index: 숫자, 문자, 0부터 시작하지 않는 숫자, 랜덤순서인 숫자 모두 가능.
데이터를 다룰때 데이터의 id값을 인덱스로 삼아 다뤄야할때가 있기 때문.
Series객체에서는 인덱스 값의 중복 허용 - dtype: numpy의 데이터 타입과 같은데, pandas는 numpy의 wrapper라이브러리이기 때문이다.
pandas의 모든 객체는 index값을 기준으로 생성되는데
이때 index값에 대응하는 value가 없으면 NaN(Not a Number)(=Null, None)을 반환한다.
from pandas import Series, DataFrame
list_data = [1,2,3,4,5]
list_name = ["a", "a", "c", "d", "e"] # index값 중 "a" 중복
example_object = Series(data=list_data, index=list_name, dtype=float)
example_object
>a 1.0
a 2.0
c 3.0
d 4.0
e 5.0
dtype: float64
이 Series객체의 값을 추출하여 type을 보면
type(example_object.values)
>numpy.ndarray
위와 같이 numpy의 배열 타입임을 알 수 있다.
또 객체나 index등에 이름을 지정할 수 있다.
example_object.name = "number"
example_object.index.name = "id"
example_object
>id
a 1.0
a 2.0
c 3.0
d 4.0
e 5.0
Name: number, dtype: float64
그리고 중요한 건 dict type데이터를 Series객체에 저장하면
자동으로 key값과 요소 값을 index와 data로 구분해준다.
# dict type 데이터를 Series객체에 저장
import numpy as np
dict_data = {"a":1, "b":2, "c":3, "d":4, "e":5}
example_obj = Series(dict_data, dtype=np.float32, name="ex_data")
example_obj
>a 1.0
b 2.0
c 3.0
d 4.0
e 5.0
Name: ex_data, dtype: float32
그리고 이때 index를 따로 지정해주면 지정된 index기준으로 객체가 생성된다.
# index 지정
dict_data_1 = {"a":1, "b":2, "c":3, "d":4, "e":5}
indexes = ["a", "b", "c", "d", "e", "f", "g", "h"]
series_obj_1 = Series(dict_data_1, index=indexes)
series_obj_1
>a 1.0
b 2.0
c 3.0
d 4.0
e 5.0
f NaN
g NaN
h NaN
dtype: float64
위에서는 index값들의 개수가 데이터 개수보다 많아서 남은 index의 데이터에 NaN이 채워진 것이다.
'pandas' 카테고리의 다른 글
groupby( ) (0) | 2022.04.02 |
---|---|
데이터 추출 (0) | 2022.04.01 |
DataFrame객체 (0) | 2022.03.30 |