[판다스(Pandas)]시리즈(Series) - Series 객체 생성, 인덱스 지정, 속성(attribute)

Jihwan Jung·2022년 10월 3일
1

🐼판다스

목록 보기
2/12
post-thumbnail

💡오늘 배울 내용


판다스의 기본 자료 구조 중 하나인, 시리즈(Series)에 대해 알아봅시다.

🔎시리즈(Series)


판다스의 자료구조 시리즈는, 1차원 배열로서 다음 세가지의 특징을 가집니다. 차원 배열 구조이자, 인덱스를 사용할 수 있고, 데이터 타입(dtype)을 가집니다.

🔘차원 배열 구조 - Series : 1차원 배열
🔘인덱스(index) 사용 가능 - 인덱싱/슬라이싱
🔘데이터 타입을 가짐 (dtype)

🔎시리즈 객체 생성


다양한 방법으로 Series객체를 생성해봅시다.

🔔ndarray로 생성


numpy array로 판다스 시리즈 객체를 만들 수 있습니다.

import numpy as np
import pandas as pd

arr = np.arange(100, 105)
print(arr)
>> array([100, 101, 102, 103, 104])

s = pd.Series(arr)
print(s)
>> 0    100
   1    101
   2    102
   3    103
   4    104
   dtype: int64

아래 코드처럼 dtype을 지정하면 배열 원소의 데이터 타입을 조정해줄 수도 있습니다.

import pandas as pd

s = pd.Series(arr, dtype='int32')
print(s)
>> 0    100
   1    101
   2    102
   3    103
   4    104
   dtype: int32

🔔list로 생성


리스트로 시리즈 객체를 생성해봅시다.

import pandas as pd

s = pd.Series([100, 101, 102, 103, 104])
print(s)
>> 0    100
   1    101
   2    102
   3    103
   4    104
   dtype: int64

위의 코드를 보면, 넘파이 배열을 사용해 만든 시리즈 객체와 동일한 객체가 생성되는 것을 확인할 수 있습니다.

import pandas as pd

s = pd.Series(['사과', '딸기', '포도', '수박', '참외'])
print(s)
>> 0    사과
   1    딸기
   2    포도
   3    수박
   4    참외
   dtype: object

string 타입의 요소들로 된 리스트를 통해 시리즈 객체를 생성한 모습입니다. 판다스에서는 문자열을 objcet라는 자료형으로 나타내는데, 이를 'dtype : object'에서 확인할 수도 있습니다.

import pandas as pd

s = pd.Series([91, 3.14, '사과', 4, 77])
print(s)
>> 0    91
   1    3.14
   2    사과
   3    4
   4    77
   dtype: object

리스트에 다양한 데이터 타입이 담겨있습니다. 이를 통해 생성한 Series 객체의 데이터 타입은 object 타입을 갖게 됩니다.

🔎인덱스 지정


   0    사과
   1    딸기
   2    포도
   3    수박
   4    참외
   dtype: object

생성된 Series의 모습을 살펴보면, 0부터 순차적으로 부여되는 index를 확인할 수 있습니다. 이를 RangeIndex라고 부릅니다.

기본값으로 부여되는 RangeIndex를 직접 지정해 줄 수도 있는데요, 객체를 생성할때 지정해주는 방법을 알아봅시다. 물론 이미 생성된 시리즈 객체의 인덱스를 바꾸거나, 데이터 프레임의 인덱스를 바꾸는 방법들도 나중에 알아볼 것입니다.

import pandas as pd

tem = pd.Series([-2, 2, 6, 12])
print(tem)
>> 0   -2
   1    2
   2    6
   3    12
   dtype: int64

1월부터 4월까지의 평균 온도 데이터가 담긴 리스트로 시리즈 객체를 만들었다고 가정해봅시다. 우리는 0부터 자동으로 지정되는 RangeIndex대신 수동으로 인덱스를 지정해주고 싶습니다.

import pandas as pd

tem = pd.Series([-2, 2, 6, 12], index=['Jan', 'Feb', 'Mar', 'Apr'])
print(tem)
>> Jan   -2
   Feb    2
   Mar    6
   Apr    12
   dtype: int64

다음과 같이 시리즈 원소의 개수와 동일한 index를 지정해주면, 시리즈 객체의 인덱스가 원하는 값으로 바뀌게 됩니다.

print(tem['Jan'])
>> -2

지정한 인덱스를 통해 해당 인덱스의 데이터를 출력할 수 있습니다. 위의 예는 1월 평균 온도 데이터를 'Jan' 인덱스를 통해 출력하는 과정입니다.

🔎속성(attribute)


   Jan   -2
   Feb    2
   Mar    6
   Apr    12
   dtype: int64

1월부터 4월까지의 평균 온도 데이터로 생성한 Series tem을 예로 들어, 시리즈의 여러가지 속성을 알아봅시다.

🔔values - 값


Series 데이터 값(value)만 넘파이 배열(ndarray) 형식으로 가져옵니다.

print(tem.values)
>> array([-2,  2,  6,  12], dtype=int64)

인덱스를 제외한 값들, 그리고 데이터 타입(dtype)이 출력됨을 알 수 있습니다.

🔔ndim - 차원


넘파이 배열에서 ndim은 차원을 나타냅니다. 역시 판다스 라이브러리 Series는 1차원 자료구조이므로 ndim 출력시 1이 출력됩니다.

print(tem.ndim)
>> 1

🔔shape - 형상


데이터의 형상(shape)을 알아보기 위해 사용되는 shape은, Series에서 데이터의 갯수를 보여줍니다. 튜플 형식으로 출력되며 값이 n개라면 (n, ) 처럼 출력됩니다.

print(tem.shape)
>> (4, )
profile
22.10月~24.07月 공군 암호병 복무중/ 사회 과학과 딥 러닝에 관심이 있는 학부생(CS&E)입니다. 기술과 사회에 대한 이해를 바탕으로, 비즈니스 감각과 기술적 역량을 함께 갖춘 인공지능 프로그래머•데이터 과학자로 성장하고 싶습니다.

0개의 댓글