Python/텔레그램봇:채권모니터링
[Pandas] 데이터 정리 (1) read_csv(na_values) & apply
hayjo
2020. 12. 15. 11:37
데이터를 csv 형태로 확보했으니, 이제 입맛대로 정렬해서 원하는 데이터만 골라낼 차례다.
python의 pandas 라이브러리를 사용할 예정이고, 우선 데이터를 불러와서 NULL값을 처리하고 날짜 포맷을 변경한다.
일단 설치를 하고
# python -m pip install --upgrade pip
# pip install pandas
데이터는 이렇게 생겼다.
가격, 수익률, 거래량, 거래대금은 '-'로 표시된 NULL 데이터가 있다.
종목명,가격,수익률,거래량,거래대금,매도최우선호가 가격,매도최우선호가 수익률,매수최우선호가 가격,매수최우선호가 수익률,신용등급,잔존기간,표준코드
HMM199CB,"10,856.0","0.000","42,122,597","44,815,973,553","10,840.0","0.000","10,825.0","0.000",BB,05.00.00,KR6011201AC7
csv 형태라서 read_csv로 넣으면 된다. 숫자에 쉼표가 있으니 thousands 구분자를 추가했고,
'-'값을 처리하기 위해 na_values='-'을 지정했다.
잔존기간은 일자로 환산했고, 영구채는 잔존기간 79년 이상으로 표시되어서 따로 처리하지 않았다.
import pandas as pd
def year2date(n): // 잔존기간 환산용 함수
y, m, d = 0, 0, 0
try:
y, m, d = list(map(int, n.split(".")))
except:
pass
return y*365 + m*30 + d
csv = pd.read_csv('./text.csv', na_values='-', thousands=r',')
csv['Y2D'] = csv['잔존기간'].apply(year2date)
이제 데이터를 필터링해서 쓰면 된다.