DataFrame 구조 다루기

pandas의 DataFrame 객체는 Series 객체를 2차원으로 확장한 것입니다. 각 row는 하나의 독립적으로 추가된 정보이며 이 정보가 column 의 갯수만큼의 속성이 존재합니다.



에 대해 정리 해보겠습니다.

Data Frame 객체 생성

CSV 파일로 DataFrame만들기

AT&T의 주가정보가 저장된 csv파일을 읽어서 DataFrame을 만들 수 있습니다. 원하는 csv파일을 주피터 노트북의 upload 버튼을 눌러서 주피터 노트북 파일의 위치와 동일한 위치에 저장합니다.

image.png

pandas 라이브러리르 사용하기 위해 pandas 라이브러리를 import 합니다.

read_csv 함수를 이용하여 T.csv파일을 dataframe 으로 저장하고 인덱스로 사용할 칼럼을 csv 파일의 "Date" 칼럼으로 지정하였습니다. 그리고 head()함수를 이용하여 dataframe의 첫 5개의 로우를 확인하였습니다.

1. DataFrame의 칼럼 구조 관리하기

1.1. 칼럼명 변경

.rename() 메소드를 이용하여 칼럼의 이름을 변경할 수 있습니다. 파라메터로 변경할 (칼럼 레이블)과 새로운 (칼럼 이름)으로 구성된 딕셔너리 객체를 전달 받습니다.

Adj Close는 Key이름에 공백이 있으니 "Adj_Close"로 이름을 변경하겠습니다.

- 함수구문

DataFrame.rename(mapper=None, index=None, **columns=None**, axis=None, copy=True, **inplace=False**, level=None, errors='ignore')

rename 메소드의 파라메터 중 columns를 통해서 칼럼의 이름을 변경할 수 있습니다. 전달하는 딕셔너리 객체가 columns을 위한 파라메터임을 명시하기 위해서 "columns ="를 사용합니다.

<주의할점>
.rename 메소드를 이용하여 칼럼의 이름을 변경할 때
원복인 stock_t의 칼럼명은 변경되지 않으며
새이름으로 칼럼명이 변경된 새로운 DataFrame을 리턴합니다.

만약 원본칼럼의 이름을 변경할 경우 "inplace=True"로 설정합니다. 기본값은 False로 설정되어 있는 것을 알 수 있습니다.



1.2. [ ]와 .insert() 를 사용한 칼럼 추가

[ ] 함수 사용

stock_t DataFrame을 복사하여 new_stock_t DataFrame을 생성합니다.
새롭게 생성된 DataFrame에 'Open'칼럼 정보를 반올림한 정보 속성을 갖는 'Round_Open'칼럼을 추가합니다.

round()함수를 통해서 반올림된 컬럼을 new_stock_t에 저장할 column 이름을 정하기 위해 'Round_Open' 칼럼명을 사용하였습니다.

.insert() 함수 사용

- 함수구문

DataFrame.insert(loc, column, value, allow_duplicates=False)



.insert 메소드는 loc 파라메터의 앞의 column위치에 column으로 전달받은 칼럼명으로 칼럼을 추가합니다.
allow_duplicates 정보는 칼럼을 추가하려는 DataFrame에 동일한 칼럼이 있을 때 변경할 지를 설정합니다.

allow_duplicate를 true로 변경하여 Round_High 칼럼이 새롭게 추가되었습니다.

새롭게 DataFrame을 생성하여 칼럼 추가하기

이번에는 임의의 DataFrame을 생성하여 칼럼을 추가하여 보겠습니다. 동일한 index갯수를 확인하기 위해서 shape 속성으로 DataFrame의 차원을 확인할 수 있습니다.

칼럼을 추가할 DataFrame과 동일한 index를 사용하고 동일한 로우 갯수를 가지는 DataFrame df를 생성하였습니다.
생성된 DataFrame은 'test'라는 이름으로 new_stock_t에 칼럼을 추가하였습니다.