pandas_series (2).md

Pandas

  • 구조화된 데이터의 처리를 지원하여 데이터 분석 및 가공에 사용되는 파이썬 라이브러리

  • 파이썬 계의 엑셀

  • 고성능 Array 계산 라이브러인 numpy와 통합하여 강력한 스프레시트 처리기능을 제공

  • 인덱싱, 연산용 함수, 전처리 함수 등을 제공

     

Series 객체

  • 1차원 배열과 같은 자료구조, index가 같이 출력됨
  • DataFrame의 한 개의 column에 해당하는 데이터의 모음 object, 즉, column vector를 표현
  • 정렬되지 않은 값
import pandas as pd
from pandas import Series, DataFrame
import numpy as np

 

1. Series 생성

obj = Series(['a', 'b', 'c', 'd'])
obj
0    a
1    b
2    c
3    d
dtype: object

 

  • Index를 지정하여 series 생성
obj2 = Series([4,5,6,2], index=['c', 'd', 'e', 'f'])
obj2
c    4
d    5
e    6
f    2
dtype: int64

 

obj2['c']
4

 

  • Data index에 접근
obj2[['d', 'f', 'c']]
d    5
f    2
c    4
dtype: int64

 

  • Value list 출력
obj2.values
array([4, 5, 6, 2])

 

  • index list만 출력
obj2.index
Index(['c', 'd', 'e', 'f'], dtype='object')

 

  • 연산 가능
obj2*2
c     8
d    10
e    12
f     4
dtype: int64

 

  • Series에 인덱스가 있는지 검사
'b' in obj2
False

 

'c' in obj2
True

 

2. Dictionary로 series 생성

  • Series가 python의 dictionary와 유사, 대체 사용 가능
  • 데이터를 dictionary로 입력하는 경우 데이터가 자동으로 정렬되어 들어감
data = {'kim': 3400, 'hong': 2000, 'kang': 1000, 'lee': 2400}
obj3 = Series(data)
obj3
hong    2000
kang    1000
kim     3400
lee     2400
dtype: int64

 

name = ['woo', 'hong', 'kang', 'lee']
obj4 = Series(data, index=name)
obj4
woo        NaN
hong    2000.0
kang    1000.0
lee     2400.0
dtype: float64

 

3. 누락된 데이터를 찾을 때 사용하는 함수: isnull, notnull

pd.isnull(obj4)
woo      True
hong    False
kang    False
lee     False
dtype: bool

 

pd.notnull(obj4)
woo     False
hong     True
kang     True
lee      True
dtype: bool

 

  • 연산을 할 때 다른 index를 가지면 NaN(not a number)으로 출력
data1 = {'Seoul':4000, 'Busan':2000, 'Incheon':1500, 'Gwangju':1000}
obj5 = Series(data1)
obj5
Busan      2000
Gwangju    1000
Incheon    1500
Seoul      4000
dtype: int64

 

cities = ['Seoul', 'Deagu', 'Incheon', 'Gwangju']
obj6 = Series(data1, index=cities)
obj6
Seoul      4000.0
Deagu         NaN
Incheon    1500.0
Gwangju    1000.0
dtype: float64

 

obj5+obj6
Busan         NaN
Deagu         NaN
Gwangju    2000.0
Incheon    3000.0
Seoul      8000.0
dtype: float64

 

4. Name 속성

  • Series객체(series index, series value)와 series index는 모두 name 속성을 가짐
obj6.name = 'Population'
obj6.index.name = 'City'
obj6
City
Seoul      4000.0
Deagu         NaN
Incheon    1500.0
Gwangju    1000.0
Name: Population, dtype: float64

 

5. Series 객체의 보간법

  • 보간법: 주로 시계열 데이터에서 값을 보간하기 위해 사용됨
  • method='ffill'은 앞에 있는 값으로 보간
obj7 = Series(['blue', 'red', 'yellow'],
             index = [0, 2, 4])
obj7
0      blue
2       red
4    yellow
dtype: object

 

obj8 = obj7.reindex(range(6))
obj8
0      blue
1       NaN
2       red
3       NaN
4    yellow
5       NaN
dtype: object

 

obj8 = obj7.reindex(range(6), method='ffill')
obj8
0      blue
1      blue
2       red
3       red
4    yellow
5    yellow
dtype: object

 

'AI&BigData > Basics' 카테고리의 다른 글

[Pandas] 함수 적용과 매핑  (0) 2018.05.06
[Pandas] Operation  (0) 2018.05.06
[Pandas] Index 객체, reindex  (0) 2018.05.06
[Pandas] DataFrame  (0) 2018.04.30
[Numpy] 브로드캐스트. 기타활용  (0) 2018.04.24
[Numpy] 자료형, type(), dtype, arange()  (0) 2018.04.24
[Numpy] 연산  (0) 2018.04.24
[Numpy] slicing, indexing  (0) 2018.04.24
[Numpy] numpy 배열, 배열 생성 함수  (0) 2018.04.16