01_Series

Series 개념

  • Series는 정수형, 문자형,NaN의 데이터를 모두 담을 수 있는 라벨이 있는 1차원 배열이다.(One-dimensional ndarray with axis labels)
  • 라벨을 Index(색인)이라 한다.
  • 즉, series는 기본적으로 data와 Index로 구성된다.

  • sereis에서 Index의 개념이 중요한데 Series docs를 보면

    • data의 길이와 Index 길이는 같아야 하고
    • 만약 Index를 생략하면 data의 길이만큼 index가 지정이 된다.
    • Index인 라벨은 유니크할 필요없지만 hashable type해야 한다(Series가 아니고 Series 안의 index속성의 의미함)
    • Index는 key와 value(label)로 구성된다.(value는 사용자가 부여하고 key는 시스템이 부여함)
In [1]:
import pandas as pd
import numpy as np
#srz = pd.Series()
data = ['A','B',np.NaN ,1,2,np.NaN, '1','2']
srz = pd.Series(data = data)
srz
Out[1]:
0      A
1      B
2    NaN
3      1
4      2
5    NaN
6      1
7      2
dtype: object
In [2]:
# index를 100부터 라벨을 붙임
index = np.arange(100,108) 
data = ['A','B',np.NaN ,1,2,np.NaN, '1','2']
srz = pd.Series(data = data, index = index)
srz
Out[2]:
100      A
101      B
102    NaN
103      1
104      2
105    NaN
106      1
107      2
dtype: object
In [3]:
# index를  중복 라벨을 붙임
index = [0, 1, 2, 3, 0, 1, 2, 3]
srz = pd.Series(data = data, index = index)
srz
Out[3]:
0      A
1      B
2    NaN
3      1
0      2
1    NaN
2      1
3      2
dtype: object
In [4]:
#값을 선택하거나 대입할때는 Index(value)를 이용해 접근한다.
#Index가 중복이므로 
srz[0]
Out[4]:
0    A
0    2
dtype: object
In [5]:
#값을 선택하거나 대입할때는 Index(value)를 이용해 접근한다.
srz[0] = "Z"
print(srz)
0      Z
1      B
2    NaN
3      1
0      Z
1    NaN
2      1
3      2
dtype: object
In [6]:
# series의 유형을 확인. NaN을 float으로 인식함
#값을 선택하거나 선택할때  iloc를 사용하여 Indexd의 key를 이용해 접근한다.
for i in range(8):
    print((srz.iloc[i])),  print(type(srz.iloc[i]))
Z
<class 'str'>
B
<class 'str'>
nan
<class 'float'>
1
<class 'int'>
Z
<class 'str'>
nan
<class 'float'>
1
<class 'str'>
2
<class 'str'>

Dictionary를 이용하여 Series 생성

  • Series는 Index에 value를 매핑하고 있기 때문에 python의 Dictionary 자료 구조와 비슷하다.(Ordered Dict)
  • 따라서 Dictionary 이용해서 간단히 Series를 생성할 수 있다.
In [7]:
s_dict = {'Arizona':2000,'Boston':2001, 'Chicago':2003,'Detroit':2004}
In [8]:
#s_dict를 이용해서 Series를 생성
srz = pd.Series(s_dict)
srz
Out[8]:
Arizona    2000
Boston     2001
Chicago    2003
Detroit    2004
dtype: int64
In [9]:
#state라는 Index를 생성하고 Index를 사용하여 Series를 생성
state = ['Arizona','Boston', 'New York','Pheonix']
srz = pd.Series(s_dict, index = state)
srz
Out[9]:
Arizona     2000.0
Boston      2001.0
New York       NaN
Pheonix        NaN
dtype: float64


© 2017. All rights reserved.

Powered by ZooFighter v0.12