데이터 청년 캠퍼스

[판다스시각화] 데이터 타입_Series (1)

뚱뚜루뚱 2022. 7. 8. 23:33

Pandas의 기본 데이터 구조는 Series(1차원)과 DataFrame(2차원)이다. 

 

Series는 Numpy 라이브러리의 ndarray 객체이다. 정수 interger, 실수 float, 복소수 complex, 문자 string, 불 bool, 리스트 list, 튜플 tuple 등 모든 데이터 타입을 이용할 수 있다.  또한 서로 다른 데이터 타입을 동시에 가질 수 있다.  Series는 인덱스 index와 값 value로 구성되어 있으며, index에는 숫자형과 문자형이 모두 올 수 있다.

 

0. Pandas 라이브러리 설치 및 불러오기

from pandas import Series
import pandas as pd

 

1. Series 생성하기: Series([data, index, dtype, name, copy, ...])

1) List

lst = [1,2,3,4]
series_lst = Series(lst)
series_lst.index = ['a', 'b', 'c', 'd']
print(series_lst)
print(series_lst.index)

혹은

series_lst = Series([1,2,3,4], index = ['a','b','c','d'])
print(series_lst)

 

2) Tuple

series_tup = Series((1,2,3,4))
print(series_tup)
print(series_tup.index)

 

3) Dict

dic = {'a':1, 'b':2, 'c':3, 'd':4}
series_dic = Series(dic)
print(series_dic)
print(series_dic.index)

 

2. Series의 특징

1. 타입: numpy.ndarray

type(series_lst)

 

2. 사용가능한 데이터 타입

series1= Series([1,2,3,4,'dreaming','data',[1,2,3,4],-1,-2,-3,-4,0.1,0.2,0.3,0.4,{'a':1,'b':2}])
series1

 

 

3. 속성 Attributes: Axes

  • index: 색인 반환
  • values: 객체 값 반환
  • dtype: 데이터타입 반환
  • shape: 구조를 tuple 형식으로 반환
  • ndim: 차원 반환
  • size: 객체 개수를 반환
  • T: transpose된 형태를 반환
  • hasnans: NaNs가 있는지 확인 - True/False
  • empty: 결측값이 있는지 확인 - True/False

 

4. Computations

  • abs(): 절대값 반환
  • between(left, right[, inclusive]): 사이값 반환
  • corr(other[, method, min_periods]): 다른 Series와의 correlation 반환. 결측치 포함
  • count([level]): non-Na/null 객체 개수 반환
  • describe([percentiles, include, ...]): 통계정보를 종합적으로 제공
  • max([axis, skipna, level, numeric_only]): values의 최대값 반환
  • mean([axis, skipna, level, numeric_only]): values의 평균 반환
  • median([axis, skipna, level, numeric_only]): values의 중위값 반환
  • min([axis, skipna, level, numeric_only]): values의 최소값 반환
  • nlargest([n, keep]): n개의 최대값 반환
  • nsmallest([n, keep]): n개의 최소값 반환
  • std([axis, skipna, level, ddof, ...]): standard error 반환
  • var([axis, skipna, level, ddof, ...]): variance 반환
  • unique(): 유일한 값 반환
  • nunique([dropna]): 유일한 값들의 개수를 반환
  • value_counts([normalize, sort, ...]): 유일한 값의 개수를 세는 Series 반환

 

5. 데이터에 각각의 값을 더하기

series_lst + 10
series_lst.add(10)
series_lst.add(other = 10)
sereis_lst.add([10,10,20,20])

 

 

6. 두 개의 Series를 합치기

series_lt = series_lst.append(series_tup)
print(series_lt)

 

 

7. 포함여부 확인하기

series_lst.isin([10,20]) # False
10 in series_lst.values  # False
'a' in series_lst.index  # True

 

 

8. Series에 함수 적용하기

def myfunc( ): 
	...

series_lst.apply(myfunc)

 

 

9. Indexing

1) 특정 인덱스 선택하기

series_lst['a'] # 인덱스 a에 해당하는 값 반환
series_lst[1] # 1번째 인덱스에 해당하는 값 반환

 

2) 여러 인덱스 선택하기

series_lst[['a','b']]
series_lst[[2,3]]

 

3) Slicing

series_lst['b':'d']
series_lst[1:3]
series_lst[:3]
series_lst[:]
series_lst[-2:]

 

4) Boolean Indexing

series_lst[series_lst >= 3]

 

 

10. 인덱스와 라벨을 특정한 형태로 출력

# index: a, value: 1

for val in series_lst.items():
	print('index:', val[0], 'value:', val[1])