본문 바로가기
Python/증권 데이터 분석

파이썬 라이브러리인 pandas(판다스) 설치, 시리즈 (생성,변경,수정,인덱싱,삭제,시각화)

by grey-hat hacker 2020. 12. 19.
728x90

 파이썬 라이브러리인 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

ilocvalues는 정수 순서에 맞게 해당 데이터를 출력하는 것은 동일하다.

 차이 : 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()

 

 - 모든 내용은 파이썬 증권 데이터 분석 책을 참고하여 작성하였습니다. 

 

728x90
반응형

댓글