본문 바로가기

python

[한빛 리뷰어] 파이썬 증권 데이터 분석 : 팬더스 데이터프레임

반응형
시리즈는 단일 변수의 관측값을 기록하기에는 적합하지만, 여러 변수에 대한 관측값을 함께 기록하기에는 적합하지 않습니다.
예를 들어 A 회사의 일별 주식 가격처럼 단일 변수 관측값은 시리즈 객체 하나에 기록하면 되지만, 일별 시가, 고가, 저가, 종가를 함께 기록하려면 시리즈 네 개가 필요합니다.
이럴 때는 데이터프레임(DataFrame)을 사용하는 것이 효율적입니다.
데이터프레임은 인덱스 하나와 여러 시리즈를 합친 자료형이라고 할 수 있습니다.
팬더스 라이브러리를 사용하면 엑셀 파일, HTML 파일, 데이터베이스로부터 데이터를 읽어와서 데이터프레임 형태로 가공할 수 있습니다.
반대로 데이터를 데이터프레임을 가공하여 엑셀 파일, HTML 파일, 데이터베이스 등으로 저장할 수 있습니다.


2014년부터 2018년까지 KOSPI 지수와 KOSDAQ 지수를 이용하여 데이터프레임을 만들어 보겠습니다. 지숫값의 소숫점 이하를 생략하겠습니다.
데이터프레임 생성자에 각각의 지수 데이터를 딕셔너리 형식으로 넣어주면 됩니다.
데이터프레임을 생성할 때 별도로 인덱스를 지정하지 않으면 0부터 시작하는 정수 인덱스가 자동으로 생성됩니다.

아래와 같이 데이터프레임의 생성자에 인덱스 인수를 추가하면 원하는 형태로 인덱스값을 설정할 수도 있습니다.

데이터프레임 객체에 포함된 데이터의 전체적인 모습을 확인하려면 describe() 메서드를 이용하면 됩니다.

데이터프레임의 인덱스 정보, 칼럼 정보, 메모리 사용량 등을 확인하려면 info() 메서드를 이용하면 됩니다.


시리즈 여러 개를 합해서 데이터프레임을 생성할 수 있습니다.
KOSPI 지수와 KOSDAQ 지수를 각 시리즈 형태로 생성해 보겠습니다.

생성된 두 시리즈를 딕셔너리 형태로 구성하여, 데이터프레임의 생성자로 넘겨주면 됩니다. 이때 각 시리즈는 데이터프레임의 칼럼으로 합쳐집니다.


리스트를 이용하여 한 행씩 추가해서 데이터프레임을 생성할 수도 있습니다.

① 데이터프레임의 행에 해당하는 리스트를 각각 생성한 뒤, 이를 rows 리스트에 추가합니다.
② 데이터프레임의 생성자에 rows 리스트를 넘겨주면 데이터프레임 객체가 생성됩니다.

데이터프레임은 다양한 방법으로 순회 처리할 수 있습니다.
첫 번째로 인덱스를 사용하는 방법입니다.

두 번째는 데이터프레임에서 제공하는 몇 가지 매서드를 이용하는 것입니다.
이들 메서드는 각 행을 순회 처리하는 자료형만 다를뿐 사용법이나 기능은 비슷합니다.
itertuples() 메서드는 데이터프레임의 각 행을 이름있는 튜플 형태로 반환합니다.

실제로 itertuples() 메서드를 사용할 때는 다음처럼 순회 처리하는 것이 편합니다.
일반적으로 itertuples() 메서드가 iterrows() 메서드를 사용할 때보다 더 빠르다고 알려져 있습니다.

iterrows() 메서드는 데이터프레임의 각 행을 인덱스와 시리즈로 조합하여 반환합니다.
사용법은 itertuples() 메서드와 비슷합니다.

 

반응형