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 |