전체 글 45

[MySQL] 비밀번호 변경하기(root password)

1. cmd cd C:\Program Files\MySQL\MySQL Server 5.7\bin MySQL 가 존재하는 디렉토리로 설정해준다(여기서 MySQL버전은 다를 수 있으므로 MySQL Server x.x 폴더는 직접 디렉토리 찾아가며 위 경로 찾아야 함) 2. Mysql 접속 mysql -u root -p 위 코드를 치면 Enter password: 가 아래에 나온다 기존 비밀번호를 입력하면 Mysql 접속 상태로 진입한다 alter user 'root'@'localhost' identified with mysql_native_password by '변경할 비밀번호'; 해당 비밀번호를 치면 비밀변호 변경완료되며 MySQL에 재접속하면 수정된 비밀번호로 접속 가능

SQL 2023.06.18

문자열 앞에 0채우기(주식 ticker)

한국 주식의 티커를 불러왔을 때 앞 부분에 0이 있는 티커의 경우 0이 생략되어 int형태로 불러와지는 경우가 있다. 이 경우 Sereis데이터를 string형태로 바꾸고 str의 자료구조에서 .zfill() 메서드를 활용하면 생략된 0을 채워줄 수 있다. 한국 주식 티커는 6자리이므로 파라미터로 6을 입력해주면 된다. df["종목코드2"] = df["종목코드"].astype('str').str.zfill(6)

backtrader 오류(FileNotFoundError) 솔루션

단순히 anaconda prompt에서 pip install backtrader로 설치하고 cerebro.run()을 실행했을 때 위과 같은 에러가 계속 발생했다. 이를 해결하고자 구글링해봤을 때 backtrader 패키지 내부의 yahoo.py의 코드를 수정해줘야 한다는 솔루션이 대부분이었다. 출처: https://jonghyunho.github.io/data/analysis/Backtrader-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%ED%8A%B8%EB%A0%88%EC%9D%B4%EB%94%A9-%EC%8B%9C%EB%AE%AC%EB%A0%88%EC%9D%B4%EC%85%98.html 하지만 코드를 수정함과 동시에 패키지 재설치 및 파이썬 버전까지 바꿔가며 실행해봤으나 ..

SQLAchemy를 활용하여 MySQL에 주가데이터 저장하기

- SQLite의 경우에는 pandas DataFrame의 to_sql메서드를 통해서 바로 db에 데이터입력이 가능하다. - 하지만 다른 종류의 database를 활용한다면 SQLAchemy를 활용해서 판다스의 데이터프레임 형태를 db에 저장할 수 있다. pip install sqlalchemy sqlalchemy를 install하는 명령어(왠만하면 아나콘다 프롬프트에서 실행해야 잘 import 된다) 1. 주식데이터 가져오기 import pandas as pd import pandas_datareader.data as web import datetime start = datetime.datetime(2010, 1, 1) end = datetime.datetime(2016, 6, 12) df = web...

SQL 2022.03.05

아나콘다 파이썬 가상 환경 생성(python버전 및 window버전 구분)

퀀트 분석 및 자동매매 시스템을 만드는데 있어서 가상환경을 설정해주어야할 필요가 있습니다. 1. 증권사API(키움, 대신, 이베스트 etc)들을 활용할 때 window32환경이 필요 2. zipline과 같은 백테스팅 라이브러리를 활용할 때 파이썬 버전을 맞춰줘야할 필요 - 나는 키움증권API과 zipline을 활용하고자 한다. - 그렇다면 window는 32bit로 파이썬은 3.6버전으로 가상환경을 만들것이다. 0. conda 가상환경 정보 확인 방법 1. 가상환경 리스트 확인 conda env list 2. conda info를 통해 해당 가상환경의 정보확인 가능(--envs생략가능) conda info --envs 3. python환경 진입하여 확인 아나콘다 프롬프트 상에서 python입력하여 py..

programming 2022.03.04

데이터 자격증 후기(ADsP, SQLD, 빅분기)

intro 1. 동기 경제학을 전공했고 금융 도메인의 데이터 사이언티스트를 꿈꾸며 역량을 키워나가고 있습니다. 데이터 사이언스 관련 공부를 하며 이왕 공부하는거 이와 관련된 자격증도 같이 따보자는 생각을 했습니다. 물론 취업을 함에 있어서 가산점이 부여되는 케이스도 있기도 하고 데이터 사이언스를 함에 있어서 본격적으로 입문한다는 생각을 가지고 시험에 임했습니다. 2. 베이스 계량경제학(경제원리를 데이터로 검증하고자 하는 과목)과 같은 통계관련 과목들을 그래도 챙겨들은편입니다. 그래서 기본적인 통계 지식과 회귀분석, 시계열 등에 대해서 기초적인 개념들은 파악하고 있었습니다. 또한 본격적으로 R과 Python을 활용하여 머신러닝 관련된 개념들을 공부하고 코딩해본 기간은 1년정도 되었습니다. SQL은 기초적인..

personal 2021.12.31

[Python] programmers 방문 길이- 좌표 이동 구현

https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr def solution(dirs): x, y = 0, 0 # 시작점 ways = ['00'] # 들린 위치의 좌표 # L, R, U, D에 따른 이동 방향 dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] move_types = ['D', 'U', 'L', 'R'] # 각 방향의 index D:0, U:1, L:2, R:3 # 이동 계획을 하나씩 확인 for dir in dirs: # 이동 후 좌표 구하기 for i in range(len(move_types)): if dir == move_types[i]: # 해당되는 무브..

[Python] programmers 스킬트리 - for ~ else구문, pop

https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr def solution(skill, skill_trees): answer = 0 for skills in skill_trees: skill_list = list(skill) for s in skills: if s in skill: # - ⓐ if s != skill_list.pop(0): # - ⓑ break else:# - ⓒ answer += 1 return answer ⓐ - skills에서 개별스킬이 skill에 포함되어있을경우 ⓑ - skill의 리스트에서 0번 인덱스를 삭제함과 동시에 이 스킬과 개별 스킬이 다르다면 스킬트리순서 어겼..

문자열 관련 함수, 메서드(assorted)

str.join() : 합쳐서 리스트 저장 str.split() : 특정 기준으로 나눠서 리스트 저장 str[::-1] 순서 반대로 리턴 str.count() : str.find() : 특정 문자 인덱스 리턴(최초 등장 인덱스) str.upper() : 모든 문자 대문자로 리턴 str.lower() : 모든 문자 소문자로 리턴 str.capitalize() : 첫 글자만 대문자로 리턴 str.replace() list로 변환 list(str) : 띄어쓰기 포함 개별 문자 나눠서 리스트에 저장 list(str).resverse() : 순서 반대로

[Python] 백준 #1316 그룹 단어 체커 - sorted()

https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 1. 반복문으로 해결 n = int(input()) cnt = n for _ in range(n): word = input() for i in range(len(word) -1): if word[i] != word[i+1]: if word[i+1] in word[:i]: cnt -= 1 break print(cnt) i번째 단어와 i+1번째 단어가 다른경우에 i+1..

Algorithm/BAEKJOON 2021.11.08