pandas 4

pangres를 사용해서 pandas로 mysql에 upsert하기.

pangres 라이브러리를 사용하면, 보다 효율적으로 mysql의 기존 데이터 테이블을 upsert(수정과 추가) 할 수 있다. pandas의 to_sql 메서드로는 기존의 데이터를 다루는데 한계가 있었고, * to_sql 메서드의 if_exist 설정 시 발생하는 문제점 : if_exists: {‘fail’, ‘replace’, ‘append’} fail: ValueError 발생. replace: 이전 데이터가 삭제됨. append: 기존 데이터가 중복됨. 기존에는 이러한 문제를 해결하기 위해 추가적으로 수정해야할 데이터만 남기는 함수를 구현하거나, sqlalchemy 와 pymysql 두 가지 방식으로 쿼리문을 작성하며 upsert 했었다. 하지만, pangres 를 활용하면 좀 더 효율적으로 up..

퀀트/Python 2023.06.25

06. Matplotlib / Pandas 에서 plot 생성하기

Matplotlib 그래프를 그리거나, 분포를 보여주는 등 시각화를 위한 파이썬 패키지 연구용으로 많이 쓰인 MATLAB의 코드 스타일을 모방 ( Matlab - Plotting Library ) 기능은 많으나 사용하기는 불편한 편 Matplotlib 준비 # COLAB 환경을 위한 나눔고딕 **한글폰트 설치** --> 진행 후, 런타임 > 런타임 다시 시작을 해 주세요. 다시 시작 후에는 이 부분 실행 X !sudo apt-get install -y fonts-nanum !sudo fc-cache -fv !rm ~/.cache/matplotlib -rf import from matplotlib import pyplot as plt 한글 폰트 설정 # 한글 폰트 설정 (Colab 나눔바른고딕, 윈도우 M..

퀀트 2022.12.01

04. DataFrame : 생성, 연산, 정렬, 병합, 그룹, 쿼리

DataFrame 연산 메소드 prac_df = 주가_데이터.T.loc['2020-09-10':'2020-09-12', ['A005930','A005940']] print(prac_df.abs()) # 절댓값 print(prac_df.isna()) # NaN 여부 print(prac_df.notna()) # 유효 여부 print(prac_df.pow(2)) # 거듭제곱 .isna() 와 .notna()의 결과 값은 True or False .isna() 값이 True다 = np.NaN = None = pd.NaT ‘ ‘ 처럼 공백은 False다. .pow()의 첫번째 인자로 상수가 들어가면 broadcast로 거듭제곱하고, Series나 DataFrame이 인자로 들어갈 수 있다. .pow()에 axis..

퀀트 2022.11.30

03. Pandas : Series, DataFrame

Pandas Panel Data System 금융 데이터 분석에 적합한 도구 1~2차원의 표 형태의 데이터 행과 열에 이름을 붙일 수 있다. (index와 columns) Series 1차원 데이터 표현 행 X 값 데이터 데이터 배열에 이름과 각 데이터의 라벨(인덱스)를 붙임 Pandas 임포트 import pandas as pd Series의 인덱스와 이름 보기 # Series의 인덱스 보기 my_series.index # Series의 이름 보기 my_series.name Series 접근 .loc[] # my_series.loc[데이터라벨 (or slice)] my_series.loc['2020-09-15'] Series에서 데이터의 라벨이름으로 접근한다. Slice 할 경우 끝을 포함한다. .il..

퀀트 2022.11.30