AI study - DataFrame

안준영·2023년 9월 25일
0
post-thumbnail

DataFrame

1. DataFrame이란?

DataFrame이란 전 포스팅에 설명했던 Pandas의 자료구조 중 하나이다. DataFrame이 Series와 다른점은 Series는 1차원 구조의 데이터를 다룬다면, DataFrame은 2차원 구조의 데이터를 다룬다.

2. DataFrame 임포팅 및 생성

첫 번째 방법은 2차원 표에서 컬럼 단위로 데이터를 표현하는 방법이다. 즉, 컬럼명을 딕셔너리 key로, 데이터는 딕셔너리의 값을 사용하는 방법인 것이다.

from pandas import DataFrame

data = {
	"종가": [157000, 51300, 68800, 140000],
   "PER": [39.88, 8.52, 10.03, 228.38],
	"PBR": [4.38, 1.45, 0.87, 2.16]
}
index = ['Naver', '삼성전자', 'LG', '카카오']

df = DataFrame(data, index)
print(df)

두 번째 방법은 먼저 리스트를 받은 다음 index와 columns를 각각 리스트로 받는 것이다.

from pandas import DataFrame

data = {
 	[157000, 39.88, 4.38],
    [51300, 8.52, 1.45],
	[68800, 10.03, 0.87],
    [140000, 228.38, 2.18]
}
index = ['Naver', '삼성전자', 'LG', '카카오']
columns = ['종가', 'PER', 'PBR']

df = DataFrame(data=data, index=index, columns=columns)
print(df)

세 번째 방법은 각 데이터 값에 '종가', 'PER', 'PBR'를 달아주는 것이다.


data = {
 	["종가": 157000, "PER":39.88, "PBR":4.38],
    ["종가": 51300, "PER":8.52, "PBR":1.45],
	["종가": 68800, "PER":10.03, "PBR":0.87],
    ["종가": 140000, "PER":228.38, "PBR":2.18]
}
index = ['Naver', '삼성전자', 'LG', '카카오']

df = DataFrame(data=data, index=index)
print(df)

3. DataFrame 컬럼, 로우 선택

DataFrame에서 컬럼을 선택하기 위해선 df['컬럼명']을 입력하면 된다. 예를 들어, 위 코드에서 df['PER']을 입력하면

Naver	   39.88
삼성전자	8.52
LG		  10.03
카카오		228.38

라는 출력값을 가진다.

그리고 로우를 선택하기 위해서는 iloc과 loc을 사용하면 된다. Series를 배우면서 배운 문법과 동일하며 iloc[] 안에는 행 번호를 쓴다는 점과 loc[] 안에는 인덱스 값을 넣는다는 사실까지도 똑같다.

df.iloc[0]
df.loc['Naver']	

그리고 Series 때와 같이 연속된 열 값이나 굳이 연속되지 않아도 멀티 로우를 얻을 수 있다. 그리고 Series와는 달리 2차원 형식의 자료를 처리하는 DataFrame에는 행 번호와 열번호를 이용해 원하는 값에 접근할 수 있다.

df.iloc[[0, 2]]
df.loc[['Naver', 'LG']]
df.iloc[0, 2] -->#앞은 행번호, 뒤는 열번호
df.loc['Naver','카카오	']-->#앞은 인덱스값, 뒤는 컬럼명

4. DataFrame 컬럼 추가, 삭제

DataFrame 컬럼 추가, 삭제도 Series 때와 크게 다르지 않다. 컬럼을 추가하기 위해서는 df['컬럼명']을 사용하면 되고, 삭제하기 위해 df.drop['컬럼명', axis=1]을 사용하면 된다.

!pip install - U pyupbit
inport pyupbit
df = pyupbit.get_ohlcv("KRW - BTC")

df['range'] = df['high'] - df['low']
df2 = df.drop('volume', axis=1)

위에서 pyupbit이란 업비트 API(암호화폐 시장)를 파이썬에서 쉽게 접근하기 위해 저자들이 만들어낸 모듈이다. 이와 비슷한 것으로 Datetimeindex를 이용하여 시계열 데이터와 인덱스를 받는 것이 있다.

profile
함께하는 스터디

0개의 댓글