반응형
- 파이썬에서 사용하는 데이터분석 라이브러리로, 행과 열로 이루어진 데이터 객체를 만들어 다룰 수 있게 되며 보다 안정적으로 대용량의 데이터들을 처리할 수 있다.
- Numpy 패키지를 바탕으로 만들어졌다. (따라서 Numpy 함수와 호환성이 좋다.)
- Series와 DataFrame 객체를 다루는 목적에 특화되어 있다.
- 통계, 결측치 처리, 시각화 등 다양한 기능이 있다.
Series
- 1차원 Numpy 배열과 유사한 pandas의 기본 데이터 객체
- index라는 속성이 있어 인덱싱 목적으로 사용된다.
- Numpy 배열과 마찬가지로 벡터 연산을 지원한다.
- Pandas의 또다른 데이터 객체인 DataFrame의 기본 단위가 된다.
Series 생성
import pandas as pd
import numpy as np
my_index = ['a','b','c']
my_values = [222,333,444]
my_arr = np.array(my_values)
my_dict = {'a':222, 'b':333, 'c':444}
pd.Series(my_values) # 값을 넣어서 생성
pd.Series(data=my_values, index=my_index) # 값과 index를 넣어서 생성
pd.Series(my_arr) # Numpy 배열기반 생성
pd.Series(my_arr, index=my_index) # Numpy 배열과 index를 넣어서 생성
pd.Series(my_dict) # 딕셔너리 기반 생성
- Series는 생성할 수 있는 방법이 매우 다양하다.
- 값만 넣을 경우 자동으로 인덱싱을 0번부터 시작한다.
- 인덱스를 함께 넣을 경우 짝을 맞추어 값들을 정리한다.
- 딕셔너리의 경우 key값이 인덱스가 된다.
Series 인덱싱
s = pd.Series(data=[111,222,333,444], index = ['a','b','c','d'], name='MySeries')
s
=결과=
a 111
b 222
c 333
d 444
Name: MySeries, dtype: int64
- 위와 같은 Series에 대해 인덱싱을 해보자.
print(s['a'])
print(s[2:4])
print(s[['a','d']])
print(s['a':'c'])
=결과=
111
c 333
d 444
Name: MySeries, dtype: int64
a 111
d 444
Name: MySeries, dtype: int64
a 111
b 222
c 333
Name: MySeries, dtype: int64
- numpy 배열을 인덱싱할 때와 유사하게 접근할 수 있다.
- [[]] 안에 인덱스값을 넣어주면 행에 접근할 수 있다.
- 단순 숫자 인덱싱과 인덱스값(문자열) 인덱싱의 차이점은 인덱스값 인덱싱은 끝 문자까지 포함하지만 숫자 인덱싱은 그렇지 않다.
print(s.index) # 인덱스 출력
print(s.name) # 이름 출력
print(s.dtype) # 자료형 출력
print(s.values) # 자료를 Numpy 배열로 출력.
=결과=
Index(['a', 'b', 'c', 'd'], dtype='object')
MySeries
int64
[111 222 333 444]
- 그 외 인덱스 관련 함수이다.
Series 연산
s1 = pd.Series(data=[1,2,3,4], index = ['d','b','c','a'])
s2 = pd.Series(data=[1,2,3,4], index = ['a','b','d','e'])
- numpy 배열과 마찬가지로 각 요소에 대하여 계산이 수행된다.
s1*2
=결과=
d 2
b 4
c 6
a 8
dtype: int64
s1 + 100
=결과=
d 101
b 102
c 103
a 104
dtype: int64
s1 + s2
=결과=
a 5.0
b 4.0
c NaN
d 4.0
e NaN
dtype: float64
s1 * s2
=결과=
a 4.0
b 4.0
c NaN
d 3.0
e NaN
dtype: float64
- 단, 모든 값은 인덱스를 기준으로 맞추어 진행된다. 따라서 두 시리즈에 대해 연산을 수행할 때 맞는 인덱스가 없을 경우 NaN을 출력하게 된다.
s1.sum()
s1.mean()
s1.median()
s1.max()
s1.std()
s1.sort_values() # value 기준 정렬
s1.sort_index() # index 기준 정렬
- 그 외에도 각종 통계치를 알아낼 수 있는 함수, 시리즈를 정렬하여 리턴하는 함수 등이 존재한다.
반응형
'🛠 기타 > Data & AI' 카테고리의 다른 글
[파이썬] Pandas 기초 - DataFrame 슬라이싱 (0) | 2020.07.09 |
---|---|
[파이썬] Pandas 기초 - DataFrame 생성 (컬럼 수정,추가, 삭제) (0) | 2020.07.09 |
[파이썬] Matplotlib 패키지 (0) | 2020.07.09 |
[파이썬] Numpy 배열의 연산 (0) | 2020.07.09 |
[파이썬] Numpy 배열의 확장 및 삭제 (1) | 2020.07.09 |