Python 끄적/가상화폐 자동화 프로그램

#7.비트코인 선물 자동구매 프로그램 - 선물시장 데이터 가져오기

슈슈차차아빠 2023. 3. 25. 23:00
반응형

python-binance 라이브러리를 이용하여 선물 시장 데이터를 가져오는 방법에 대해 알아보겠습니다.

 

1. Pandas 

 

Pandas는 파이썬에서 데이터를 다루는 라이브러리로, 매우 다양한 형태의 데이터를 다룰 수 있습니다. Pandas는 대표적으로 두 가지 자료형을 제공합니다.

  1. Series: 1차원 배열 형태의 데이터를 다룰 때 사용합니다. 각 데이터는 인덱스(index)로 접근할 수 있으며, 인덱스는 문자열이나 숫자일 수 있습니다.
  2. DataFrame: 2차원 테이블 형태의 데이터를 다룰 때 사용합니다. 테이블은 행(row)과 열(column)로 이루어져 있으며, 각각의 행과 열은 인덱스로 접근할 수 있습니다.

Pandas는 다양한 데이터 파일과 데이터베이스에서 데이터를 가져올 수 있으며, 가져온 데이터를 다양한 방법으로 가공하고 분석할 수 있습니다. 예를 들어, 다음과 같은 작업을 할 수 있습니다.

  1. 데이터 인덱싱: 데이터셋에서 필요한 부분만 추출할 수 있습니다.
  2. 데이터 필터링: 조건에 맞는 데이터만 추출할 수 있습니다.
  3. 데이터 정렬: 데이터를 원하는 방식으로 정렬할 수 있습니다.
  4. 데이터 그룹화: 데이터를 그룹으로 묶어서 통계를 내거나 집계할 수 있습니다.
  5. 결측치 처리: 데이터셋에서 누락된 값을 채울 수 있습니다.
  6. 데이터 시각화: Matplotlib 등 다른 라이브러리와 함께 사용하여 데이터를 시각화할 수 있습니다.

이 외에도 Pandas는 다양한 기능을 제공하며, 데이터를 다룰 때 매우 유용한 라이브러리입니다. Pandas의 자세한 사용법은 공식 문서를 참고하시면 됩니다.

 

Pandas 공식 문서 URL : https://pandas.pydata.org/

 

2. 데이터 프레임 (Dataframe) 

Python의 pandas 패키지에서는 DataFrame이라는 데이터 구조를 제공합니다. DataFrame은 행과 열로 구성된 2차원 데이터 구조로, 엑셀의 스프레드시트와 유사한 형태를 가지고 있습니다.

DataFrame은 다음과 같은 특징을 가지고 있습니다.

  • 각 열은 다른 데이터 타입을 가질 수 있습니다. (정수형, 실수형, 문자열 등)
  • 각 행과 열은 레이블(label)을 가지고 있습니다. (행 인덱스, 열 이름)
  • 데이터를 추가, 삭제, 수정할 수 있습니다.
  • 행과 열의 크기를 변경할 수 있습니다.
  • 데이터를 정렬하거나 그룹화할 수 있습니다.
  • 데이터를 저장하거나 로드할 수 있는 기능을 제공합니다.

3. 선물 시장 데이터 가져오기 

from binance.client import Client
import pandas as pd

api_key = 
api_secret = 

client = Client(api_key, api_secret)

symbol = "BTCUSDT"  # 가져올 데이터의 심볼
interval = Client.KLINE_INTERVAL_1HOUR  # 데이터의 인터벌
start_date = "1 Jan, 2023"  # 데이터 시작 일자
end_date = "31 Jan, 2023"  # 데이터 종료 일자

klines = client.futures_klines(symbol=symbol, interval=interval, 
                               startTime=start_date, endTime=end_date)

# 데이터를 Pandas DataFrame으로 변환
df = pd.DataFrame(klines, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume',
                                   'close_time', 'quote_asset_volume', 'number_of_trades',
                                   'taker_buy_base_asset_volume', 'taker_buy_quote_asset_volume',
                                   'ignore'])
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')

print(df.head())

BTCUSDT 선물 시장에서 2023년 1월의 시가, 고가, 저가, 종가, 거래량 등의 데이터를 가져옵니다. futures_klines 함수는 리스트 형태로 데이터를 반환하므로, 이를 Pandas DataFrame으로 변환하여 데이터를 쉽게 다룰 수 있습니다.

 

출력 해 보았습니다.

 

출력 결과

반응형