Studio KimHippo :D
[Python / Pandas] 2. Series 인덱싱, 슬라이싱 본문
# -*- coding : utf-8 -*-
import pandas as pd
import numpy as np
# NOTE
# Series 객체는 1차원 NumPy 배열과 표준 파이썬 딕셔너리처럼 동작.
# NOTE
# Series 객체는 딕셔너리와 마찬가지로 키의 집합을 값의 집합에 매핑
data = pd.Series(np.linspace(0.25, 1, 4), index = ['a', 'b', 'c', 'd'])
print(data['b'])
print('a' in data)
print(data.keys())
print(list(data.items()))
# NOTE
# 딕셔너리와 마찬가지로 새로운 키에 값을 할당해 Series를 확장시킬 수 있다.
data['e'] = 1.25
print(data)
Out [1] :
0.5
Out [2] :
True
Out [3] :
Index(['a', 'b', 'c', 'd'], dtype='object')
Out [4] :
[('a', 0.25), ('b', 0.5), ('c', 0.75), ('d', 1.0)]
Out [5] :
a 0.25
b 0.50
c 0.75
d 1.00
e 1.25
dtype: float64
# NOTE
# 슬라이싱, 마스킹, 팬시 인덱싱 등 NumPy 배열과 똑같은 기본 메커니즘으로 배열 형태의 아이템을 선택할 수 있다.
# NOTE : 명시적인 인덱스로 슬라이싱
print(data['a':'c'])
# NOTE : 암묵적 정수 인덱스로 슬라이싱
print(data[0:2])
# NOTE : 마스킹
# REVIEW
# 마스킹 : 배열에서 조건에 맞는 값들을 선택하기 위해 간단히 Bool 배열을 인덱스로 사용.
print(data[(data > 0.3) & (data < 0.8)])
# NOTE : 팬시 인덱싱
# REVIEW
# 팬시 인덱싱 : 한 번에 여러 배열 요소에 접근하기 위해 인덱스의 배열을 전달.
print(data[['a', 'e']])
# NOTE
# 명시적 인덱스로 슬라이싱 할 때는 최종 인덱스가 슬라이스에 포함됨.
# 암묵적 인덱스로 슬라이싱 할 때는 최종 인덱스가 슬라이스에 포함되지 않음.
Out [1] :
a 0.25
b 0.50
c 0.75
dtype: float64
Out [2] :
a 0.25
b 0.50
dtype: float64
Out [3] :
b 0.50
c 0.75
dtype: float64
Out [4] :
a 0.25
e 1.25
dtype: float64
# NOTE : loc, iloc, ix
data_2 = pd.Series(['a','b','c'], index = [1, 3, 5])
# NOTE
# loc : 명시적인 인덱스를 참조하는 인덱싱과 슬라이싱을 가능하게 함.
print(data_2.loc[1])
print(data_2.loc[1:3])
# NOTE
# iloc : 암묵적인 파이썬 스타일의 인덱스를 참조하게 해줌.
print(data_2.iloc[1])
print(data_2.iloc[1:3])
Out [1] :
a
1 a
3 b
dtype: object
Out [2] :
b
3 b
5 c
dtype: object
참고
O'REILLY 제이크 밴더플래스 저/ 위키북스 김정인 역 - 파이썬 데이터 사이언스 핸드북
'Python Study > Pandas' 카테고리의 다른 글
[Python / pandas] 1. Pandas 객체 (0) | 2019.07.08 |
---|
Comments