반응형

주식공부/파이썬 주식 18

파이썬 판다스 에러 / ValueError: Columns cannot be a set

앞서 pip가 정상적으로 작동하지 않는 문제를 겪은 일에 대해 포스팅했었는데, 이를 해결하는 과정에서 파이썬 버전을 최신버전으로 업데이트를 했습니다. (현재 3.11.0 버전, 64bit) 그리고 지워졌던 모듈을 재설치 중에 있었고, 자연스럽게 pandas를 pip install pandas로 설치를 하니 자동으로 최신버전 1.5.2버전이 깔렸습니다. 문제는 여기서 발생했는데요, 기존에 파이썬 3.10 버전이 깔려있었던 걸로 기억하고, pandas는 어떤 버전이 깔렸었는지는 기억이 안납니다만, 분명 코드가 변경된 내용이 없는데, 아래와 같이 오류가 발생했습니다. ValueError: Columns cannot be a set 데이터프레임을 정의하면서 열을 지정하는 코드인데, 거기서 열은 set가 될 수 ..

vscode에서 pip 오류가 뜨는 경우. / 'pip' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다.

주식 관련은 아니지만 업무적으로 코딩작업이 필요해서 하다가 생긴 오류가 있어서 해결 방법을 정리해 봅니다. 며칠간 계속 잘 해 왔는데, 어느순간 기억나지도 않는 특정 모듈을 설치하다가 몇번 error가 떴었고, 그 때문인지 이후 이런 오류가 뜨더군요 ImportError : No module named 'resource' "AttributeError module 'time' has no attribute 'clock'" 잘 쓰고 있었는데 너무 황당한거죠. 특히나, seaborn 모듈을 불러오는 파일에서만 발생하는걸 확인했습니다. 어쨌든 이를 해결해야 했고 답을 찾지 못해서 vscode는 놔두고 파이썬을 다시 설치했고, pandas 설치부터 하려고 pip install pandas를 입력하는 순간! 'pi..

파이썬 주식, 지지선과 저항선 순번 매기기 - 1

일단 아이디어만 구현 해본다. 아래와 같은 순서로 진행한다. 1) list에 현재가 추가하고 를 오름차순으로 중복제거 정렬한다. 2) 딕셔너리화 하여 순번을 value값으로 넣어준다. 3) 모든 키값의 value에서 현재가 value를 빼준다. 물론 현재가 value에서도 그렇게 한다. 4) 현재가 value가 0 즉, 기준점이 되고, 오름차순 이므로, 좌측으로는 -1,-2,-3 이렇게 지지점 value가 매겨지고, 우측으로는 1,2,3 이렇게 저항점 value가 매겨짐. 5) 지지라인 개수 카운팅하고, 저항라인 개수 카운팅해서 순서대로 base1,base2, base3 또는 우측으로 res1,res2,res3 이렇게 value를 추가해준다. 아이디어 예시로, 아래와 같이 지지선과 저항선이 list에 마..

코스피,코스닥 종목별 뉴스 크롤링하기

크롤링을 왜 하지? 라는 생각을 해본다. 1) 원하는 정보의 뉴스만 가져오고 싶어서 2) 그 행위를 자동화 하고 싶어서 아마 저 2가지 이유일거라 생각이 된다. 그래서 오늘은 일단 간단하게 종목들에 대해 주요 기사를 가져오는 방법을 공유해본다. ※ 크롤링에 대한 방법은 아래 블로거 및 유튜브 내용을 참고했습니다. 1) https://juran-devblog.tistory.com/88 2) https://wonhwa.tistory.com/46 3) https://www.youtube.com/watch?v=U1amkBqKF5g&t=2s 1. Open API 설정. - 종목명을 가져오는 것은 우선 본인의 경우 kiwoom Open API를 활용하고 있다. - 방식은 여러방법이 있겠지만, Open API를 쓰는..

데이터프레임에 Scalar 값만 들어가면 에러가 뜬다. - If using all scalar values, you must pass an index

제목에서 본 것과 같이 발생한 에러는 이렇다. If using all scalar values, you must pass an index 구글링하면서 참조한 블로그는 'https://rfriend.tistory.com/482' 이다.(감사합니다:) 에러 메세지 그대로 직관적으로 따른다면 위 해결책 중 1번을 사용하면 제일 간단한 것 같다. 굳이 2~4번까지 시도하지 않았고, 1번으로 바로 해결되었다. 변경전(index 안들어감) df_kospi = pd.DataFrame({'시장명': '코스피', '업종명': KOSPI_name[int(cnt-1)], '업종코드' : i})​ 변경후(index를 넣어주었다) df_kospi = pd.DataFrame({'시장명': '코스피', '업종명': KOSPI_na..

데이터프레임에 append가 안된다고..

기존 Pycharm에서 코딩하다가 VS code로 갈아타려고 했다. 기존 파일 불러와서 실행시켰더니 이런 에러가 떴다. for i in KOSDAQ_code: cnt = cnt+1 df_kosdaq_category = df_kosdaq_category.append({'시장명': '코스닥', '업종명': KOSDAQ_name[int(cnt-1)], '업종코드' : i},ignore_index=True) FutureWarning: The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead. df_kosdaq_category = df_kosdaq_category..

파이썬 주식, 지지선/저항선을 그려보자

파이썬으로 백테스팅이나 크롤링 하는 많은 고수분들의 블로그 내용은 많은데, 지지/저항을 그려본 내용은 잘 없었다. 그래서 어설프게나마 만들어 보았다. 혹시라도 관심 있으신 분들이 참고 하실 수 있길 바라며~ 1. 어떻게 지지/저항 라인을 찾나? - 단순히 생각해보자. 일봉이든 분봉이든 파동이 쭉 그려지면 고점은 저항이 되고 저점은 지지가 된다. 그리고 지지는 과거에 저항이었을 거다. → 특정 기간별로 그룹화 해서 min/max를 가려낸다. * df : 주가의 데이터프레임 * gt : 나누고자 하는 단위그룹 별 거래일 수 * term : 분석할 전체 거래일 수 * gcnt : 그룹화 된 그룹 개수 (= term/gt) for 문으로 그룹별 min,max 확인해서 min그룹, max 그룹에 넣어주었다. de..

파이썬 주식 딕셔너리가 좋을까 리스트가 좋을까?

파이썬으로 주식 코딩을 하다보면, 어떤 때는 딕셔너리, 어떤때는 리스트를 사용한다. 그럼 어떤게 더 편할까? 나는 개발자 출신이 아니다. 정말 프로그래밍의 '프' 자도 아직 잘 모르는 입장으로써 단순하게 느낀바로만 말하자면, '딕셔너리'가 편하다. 주식은 '종목코드'가 있고 '종목명'이 있는데, 종목명 또는 종목코드에 대한 정보들을 마구 달아줘서 함께 모아두어야 할 때가 있다. 그럴때 리스트로는 커버가 안된다. 딕셔너리는 key와 value로 구성이 되므로, 당연히 리스트 형식보다 관리하기 좋다. self.real_dict = {} 이런 딕셔너리를 사전에 정의해두었다고 치자. 실시간으로 조회되는 종목들을 담아두려고 만들었다. 그러면 아래와 같이 딕셔너리에 종목코드를 key값으로 넣고, 그뒤에 필요한 va..