728x90
- 신한투자증권에서 제공하는 장내시세 페이지의 API가 너무 대놓고 노출되어 있어서 참을 수 없었다.
pandas
를 통해서 금융 데이터 분석하기에는 꽤나 괜찮은 예제
예제 코드
import requests
import pandas as pd
class bond:
def __init__(self):
self.get_prices()
pass
def get_prices(self):
# 데이터 받기
URL = 'https://www.shinhansec.com/siw/wealth-management/bond-rp/590401/data.do'
response = requests.get(URL)
data = response.json().get('body').get('반복데이타0')
# 테이블 전처리
df = pd.DataFrame(data)
df.columns = [
'종목명', '매도수익률', '잔존만기일수', '거래대금', '표면금리',
'신용도', '종목코드', '현재가', '발행주체', '이자지급방법',
'잔존만기_연', '잔존만기_월', '잔존만기_일', '매수수익률', '표면금리2',
'x1', 'x2','만기일시', '거래량', '등락률', '전일종가',
]
# 필드 전처리
df.종목명 = df.종목명.str.strip()
df = df.astype({
'매도수익률': 'float',
'잔존만기일수': 'int',
'거래대금': 'int',
'표면금리': 'float',
'현재가': 'float',
'매수수익률': 'float',
'잔존만기_연': 'int',
'잔존만기_월': 'int',
'잔존만기_일': 'int',
'거래량': 'int',
'등락률': 'float',
'전일종가': 'float',
})
df.drop(columns=['표면금리2', 'x1', 'x2'], inplace=True)
# df.info()
self.prices = df.set_index('종목코드')
b = bond()
b.prices
'Today_I_Learned' 카테고리의 다른 글
AWS API Gateway로 DynamoDB PutItem 메서드 구현 (23.10.13) (1) | 2023.10.14 |
---|---|
multiprocessing를 통한 병렬 처리 파이썬 코드 예제 (0) | 2023.09.30 |
네이버 증권 ETF 시세 정보 및 항목 리스트 API 조회 파이썬 코드 예제 (0) | 2023.09.30 |
Cloudflare R2 파일 업로드 파이썬 코드 예제 (0) | 2023.09.29 |
TISTORY 블로그 작성 자동화 파이썬 코드 예제 (0) | 2023.09.29 |