데이터 청년 캠퍼스
[판다스시각화] 데이터 타입_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])