파이썬 라이브러리인 pandas(판다스) - 팬더스라고도 부름
- 금융 데이터 분석을 목적으로 개발 되었다.
- 구조화된 데이터를 쉽고 파르게 가공할 수 있는 자료형과 함수를 제공한다.
- > 행과 열로 이루어진 데이터 객체를 데이터로 생성
- > 안정적으로 대용량의 데이터들을 매우 편리하게 처리할 수 있다.
시간의 흐롬에 따라 기록한 데이터를 시계열 시리즈는 이런한 시계열 데이터를 다루는 데 적합하다.
tip. 데이터 프레임은 여러 시리즈가 한 가지 인덱스를 기준으로 합쳐진 형태
1. 설치
C:\Users\user\AppData\Local\Programs\Python>pip install pandas
2. 시리즈 생성하기
시리즈로 생성할 데이터를 리스트 형태로 Series() 생성자에 넘겨주는 것만으로도 간단히 생성할 수 있다.
tip. 시리즈에 인덱스를 별도로 지정하지 않으면, 0부터 시작하는 정수형 인덱스가 자동으로 생성된다.
>>> import pandas as pd
>>> s = pd.Series([0.0,1.1,2.1,3.1,4.5,8]) #리스트로 시리즈 생성
>>> s
0 0.0
1 1.1
2 2.1
3 3.1
4 4.5
5 8.0
dtype: float64
3. 시리즈 인덱스 변경 및 이름 생성하기
index 속성 이용하여 인덱스 정보를 설정 및 병경할 수 있다.
index.name 속성을 이용해 인덱스 이름을 설정하였다.
>>> s.index = pd.Index([0.0, 1.2, 1.8, 3.0, 3.6, 4.8])
>>> s.index.name = 'GREY_HAT'
>>> s
GREY_HAT
0.0 0.0
1.2 1.1
1.8 2.1
3.0 3.1
3.6 4.5
4.8 8.0
dtype: float64
name 속성을 이용하면 시리즈의 이름을 설정할 수 있다.
>>> s.name = 'GREY'
>>> s
GREY_HAT
0.0 0.0
1.2 1.1
1.8 2.1
3.0 3.1
3.6 4.5
4.8 8.0
Name: GREY, dtype: float64
4. 시리즈 데이터 추가하기
[]를 이용하여 인덱스 레이블과 인덱스에 해당하는 값을 지정할 수 있다.
>>> s[5.9] = 5.5
>>> s
GREY_HAT
0.0 0.0
1.2 1.1
1.8 2.1
3.0 3.1
3.6 4.5
4.8 8.0
5.9 5.5
Name: GREY, dtype: float64
또는 하나의 시리즈를 새로 생성 후 append() 메서드로 추가하는 것이다.
>>> ser = pd.Series([6.5, 4.2], index=[6.8,8.0])
>>> s = s.append(ser)
>>> s
0.0 0.0
1.2 1.1
1.8 2.1
3.0 3.1
3.6 4.5
4.8 8.0
5.9 5.5
6.8 6.5
8.0 4.2
dtype: float64
5 데이터 인덱싱
인덱스 값을 구해보기 index 속성을 사용하는 -1 은 제일 마지막을 의미 마지막 인덱스 값을 8.0이 나온다.
그리고 인덱스 순서에 해당하는 데이터 값을 구하려면 values 속성을 사용면 된다.
>>> s.index[-1]
8.0
>>> s.values[-1]
4.2
인덱스 값을 이용해서 데이터 값을 구해오는 방법이 있는데
- 인덱스값을 사용해서 데이터를 불러 올 때는 loc 인덱서 사용
- 정수 순서를 사용해서 데이터를 불러 올 때는 iloc 인덱서 사용
>>> s.loc[8.0]
4.2
>>> s.iloc[-1]
4.2
iloc 와 values는 정수 순서에 맞게 해당 데이터를 출력하는 것은 동일하다.
차이 : values는 결괏값이 복수 개일 때 배열로 반환
iloc는 시리즈로 반환
>>> s.values[:]
array([0. , 1.1, 2.1, 3.1, 4.5, 8. , 5.5, 6.5, 4.2])
>>> s.iloc[:]
0.0 0.0
1.2 1.1
1.8 2.1
3.0 3.1
3.6 4.5
4.8 8.0
5.9 5.5
6.8 6.5
8.0 4.2
dtype: float64
6. 데이터 삭제
시리즈의 값을 삭제하려면 drop() 메서드 사용하면 된다. - 삭제하는 해당 인덱스 값을 이용하여
tip 여기서 s=s.drop(8.0) 하면 s 시리즈에 적용이 되지만 아래처럼 할 경우 해당 결과가 적용되지는 않는다.
>>> s.drop(8.0) #s.drop(s.index[-1]) 같은 의미
0.0 0.0
1.2 1.1
1.8 2.1
3.0 3.1
3.6 4.5
4.8 8.0
5.9 5.5
6.8 6.5
dtype: float64
7. 시리즈 정보 보기
시리즈 정보를 확인하려면 describe() 메서드 이용
>>> s.describe()
count 9.000000 # 원소 개수
mean 3.888889 # 평균
std 2.586235 # 표준편차
min 0.000000 # 최솟값
25% 2.100000 # 제1 사분위수
50% 4.200000 # 제2 사분위수
75% 5.500000 # 제3 사분위수
max 8.000000 # 최댓값
dtype: float64
8. 시리즈 출력하기
- 인덱스 값을 x 값으로, 시리즈 데이터값을 y값으로
>>> import pandas as pd
>>> s = pd.Series([0.0, 3.6, 2.1, 4.5, 5.5, 6.7])
>>> s.index = pd.Index([0.0, 1.2, 1.8, 3.0, 3.6, 5.9])
>>> s.index.name = 'MMOO'
>>> s.name = 'BTS'
>>>
>>> import matplotlib.pyplot as plt
>>> plt.title('STAR')
>>> plt.plot(s, 'bs--') # s=시리즈를 / bs--(푸른 사각형과 점선) 형태로 출력
>>> plt.xticks(s.index) # x축의 눈금값을 s 시리즈의 인덱스 값으로
>>> plt.yticks(s.values) # y축의 눈금값을 s 시리즈의 데이터값으로 설정
>>> plt.grid(True)
>>> plt.show()
- 모든 내용은 파이썬 증권 데이터 분석 책을 참고하여 작성하였습니다.
'Python > 증권 데이터 분석' 카테고리의 다른 글
팬더스를 이용한 주식 시세 비교하기 (Comparison of Stock Price Using Panthers) (0) | 2020.12.22 |
---|---|
팬더스 데이터프레임 여러 방법을 이용한 생성 및 순회 처리하기 (0) | 2020.12.22 |
array, ndarray 차이점, 코드 사용 방식 (0) | 2020.12.15 |
넘파이(NumPy) 배열 - 배열 생성 (0) | 2020.12.15 |
파이썬 문자열 - str 문자열 클래스 (0) | 2020.12.11 |
댓글