Appia의 IT세상

파이썬[Python] Pandas, Pandas Series생성 및 활용하기 본문

Python/Python Pandas

파이썬[Python] Pandas, Pandas Series생성 및 활용하기

Appia 2020. 3. 21. 07:01
반응형

앞서 Pandas 포스팅에서는 Pandas의 가장 많이 사용되는 객체인 DataFrame에 대해서 알아봤습니다. 그래서 이번에는 DataFrame의 구성하는 항목인 Series에 대해서 알아보고자 합니다. 

 

Series 

Series는 다음과 같은 형태의 데이터 구성을 가지고 있습니다. 이 부분은 당연히, Data Frame의 한 Column으로 구성될 수 있습니다. 

Series 구성 

그럼 위와 같은 Series를 생성하는 부분에 대해서 살펴보도록 하겠습니다. 일단 다음과 같은 형태로 series를 선언할 수 있습니다. 

 

pandas.Series(data, index, dtype, copy) 

 

data - series를 구성할 데이터ㅡ ndarray, list, constants

index - Optional한 부분

dtype - 각 항목에 적용될 타입 

copy 

 

빈 Series 생성 

그럼 다음 예제를 통해 빈 Series를 생성을 해보겠습니다. 

example) 

import pandas as pd
 
ds = pd.Series()
 
print(ds)
cs

result)

Series([], dtype: float64)
cs

위와 같이 빈 Series를 생성할 수 있습니다. 물론 제가 좋은 모습만 보여드렸는데 아마도 빈 Series를 생성하시면 다음과 같은 Warning message를 볼 수 있습니다. 

DeprecationWarning: The default dtype for empty Series will be 'object' instead of 'float64' in a future version. Specify a dtype explicitly to silence this warning.
  ds = pd.Series()

위의 Waring은 객체가 없는 상태이므로, 관련해서 데이터 타입을 명시해주  라는 부분입니다. 객체가 있는 부분들은 데이터타입을 입력하지 않으면 자동으로 객체의 타입을 받아 옵니다. 

 

ndarray의 데이터를 이용한 Series 생성

아마도 Pandas를 사용하시는 분들은 대부분 numpy와 긴밀하게 혼용해서 사용합니다. 그래서 Numpy에서 데이트의 근간인 ndarray를 바탕으로 Series를 생성하는 방법에 대해서 한번 살펴보겠습니다. 

example) 

import pandas as pd
 
import numpy as np
 
sampleData = np.array(['a','b','c','d'])
 
ex_series = pd.Series(sampleData)
 
print(ex_series)
cs

result) 

0    a
 
1    b
 
2    c
 
3    d
 
dtype: object
cs

 

Dictionary를 이용한 Series 생성 

DataFrame에서도 봤겠지만, Pandas는 Dictionary의 형태와 매우 비슷해서 관련해서 사용이 용이합니다. 그래서 관련해서 불러와서 자주 사용합니다. 그래서 이번에는 Dictionary를 바탕으로 Series를 생성하는 방법을 예제로 살펴보겠습니다. 

example)

import pandas as pd
 
sampleDict = {'a' : 0.'b' : 1.'c' : 2.}
 
ds = pd.Series(sampleDict)
 
print(ds)
cs

result)

a    0.0
 
b    1.0
 
c    2.0
 
dtype: float64
cs

위에서 본 바와 같이 Series를 생성할 때 불러온 Dictionary가 기본적으로 float형태를 뛰고 있기 때문에 다음과 같이 float64형태의 데이터타입을 가지는 Series가 생성되었습니다. 

 

그럼 관련해서 index를 사용해보는 예제를 한번 보겠습니다. 

example) 

import pandas as pd
 
sampleDict = {'a' : 0.'b' : 1.'c' : 2.}
 
ds = pd.Series(sampleDict, index=['b''c''d''a'])
 
print(ds)
cs

result)

b    1.0
 
c    2.0
 
d    NaN
 
a    0.0
 
dtype: float64
cs

위와 같이 키를 이용해서 다음과 같이 생성했습니다. 그렇지만, index를 입력된 순서로 Serise가 생성이 됩니다. 하지만, 키 값이 없는 Dictionary에 대해서는 d   Nan 형태로 생성이 됩니다. 

 

Index/Position을 이용한 Series 접근 

Postion 값을 이용한 Series 값에 대한 접근 방법에 대해서 한번 살펴보겠습니다. 

example) 

import pandas as pd
 
sample = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
 
print(sample[0]) # 첫번째 값 접근
 
print(sample[:2]) # 2번째 맴버까지 접근
 
print(sample[-2:]) # 뒤에서 2번째짜리 부터접근
cs

result)

#print(sample[0]) 결과
 
1
 
#print(sample[2]) 결과
 
a    1
 
b    2
 
dtype: int64
 
#print(sample[-2]) 결과
 
d    4
 
e    5
 
dtype: int64
cs

위와 같은 형태로 결과가 나옵니다. 인덱스를 이용하면 다읍과 같은 결과가 나옵니다. 아마 코드를 보면 쉽게 이해가 되실 거라고 생각이 듭니다. 

 

그럼 index값을 이용한 접근에 대해서 한번 살펴보겠습니다. 

example)

import pandas as pd
 
sample = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
 
print(sample[['a','c','d']])
cs

result)

a    1
 
c    3
 
d    4
 
dtype: int64
cs

위에서 sample[['a','c','d']]을 출력하면 위의 같은 결과가 출력이 됩니다. 

 

이번포스팅에서는 Pandas에서 유용하게 사용할 수 있는 Series에 대해서 한번 살펴봤습니다. 생성과 관련된 값의 대한 데이터 접근을 한번 살펴봤습니다. Pandas를 처음 사용하시는 분들에게는 반드시 필요로 하는 부분입니다. 혹시 궁금하시거나 문의 사항이 있으시면 언제든지 댓글 및 문의 부탁드립니다. 

반응형
Comments