작성
·
405
2
위 코드에서 두종목 corr_pair_df를 정의하여 correlation을 위한 코드를 작성해주셨는데, daily_rtn_df['KOSEF 국고채10년']에는 왜 rolling을 적용안하는지 궁금합니다.
코딩결과는 daily_rtn_df['삼성전자'].rolling(window=60).corr(daily_rtn_df['KOSEF 국고채10년']과
daily_rtn_df['삼성전자'].rolling(window=60).corr(daily_rtn_df['KOSEF 국고채10년'].rolling(window=60))이 동일하지만
제 생각에는 첫번째 코드는 삼성전자의 60개 묶음 수익률 data에 해당하는 KOSEF국고채10년 데이터가 비교가 안되어 error가 날거라 생각했는데 정상작동하길래 원리가 궁금해서 물어봅니다.
답변 2
2
안녕하세요!
정말 좋은 질문을 주셨습니다.
저는 다음과 같이 확인했습니다.
우선 저도 비슷한 의문이 생겼기에, pandas 코드를 직접 까봐야 겠다고 판단했습니다.
In [1]: import pandas as pd
In [2]: pd
Out[2]: <module 'pandas' from '/Users/chois/miniconda3/lib/python3.9/site-packages/pandas/__init__.py'>
이렇게 pandas 설치 위치를 알아낸뒤, 해당 경로를 vscode등과 같은 코드편집기로 오픈합니다.
rolling 함수를 찾아내면 다음과 같은 파일에 도달할 것입니다: https://github.com/pandas-dev/pandas/blob/7c48ff4409c622c582c56a5702373f726de08e96/pandas/core/window/rolling.py#L1830
여기서 보시면, a, b를 이용해 rolling을 주어진 window로 재계산 하시는 모습을 볼 수 있습니다(판다스 1.2.x 기준입니다)
때문에 국고채에 대해 rolling을 하든 안하든, 어차피 함수 내부적으로 window에 맞게 재계산을 각각 진행해서 corr를 구하기 때문에 문제가 되지 않았던 것입니다.
답변이 되셧을까요?
0
설명은 이해했는데,
문제 해결하는 process가 저는 잘안되네요...
In [1]: import pandas as pd
In [2]: pd
Out[2]: <module 'pandas' from 'c:\\users\\yeongjaekim\\anaconda3\\lib\\site-packages\\pandas\\__init__.py'>
pandas 설치 위치 찾은 후에 하기 사진과 같이 __init__.py 를 vscode로 실행하고 ctrl+F를 이용하여 rolling을 검색해 봤는데에 관련 함수가 없어요.
어떻게 하면 위 답변에서 알려주신 링크인 https://github.com/pandas-dev/pandas/blob/7c48ff4409c622c582c56a5702373f726de08e96/pandas/core/window/rolling.py#L1830 로 도달할 수 있을까요?
별로 중요하지 않는거 같은데 여태까지 강의에서 수업시간에 다루지 않지만 github공부해라 apply 공부해라 등 하라는거 안해서 제 자신이 부족하다는 느낌때문에 사소한거에 집착하는거 같습니다.ㅠㅠ
안녕하세요!
우선 __init__.py 말고 그보다 한단계 위 디렉터리인 pandas에 위치한 후에, 해당 하위폴더내에서 find를 하셔야 합니다
이 때, '특정 파일내에서 찾기'가 아닌 '하위 폴더내에 있는 모든 파일에서' 찾기를 통해 def corr 를 찾아내셔야 합니다.
제가 vscode를 쓰지 않아서 해당 방법은 구체적으로 말씀드리기는 어려우나 모든 IDE는 해당 기능을 제공하고 있습니다.
혹여나 찾아냈다고 하시더라도, pandas 버전에 따라 코드가 조금 상이할 수 있으니, 참고바랍니다.
그리고 우선 제가 정말 "모든 내용"을 수업에서 다뤄드리지 못한점은 죄송스럽게 생각합니다. 하지만 스스로 학습하시면서 좌절감을 갖지 않으셨으면 좋겠습니다. 아 이런게 있구나, 저런게 있구나 정도만 알아두고, 따로 keep 해두면, 반드시 해당 부분을 공부해야할 순간이 언젠간 찾아올거에요. 그 때 깊게 들여다봐도 늦지 않습니다.
수강생분이 질문하신 내용만 봤을 때, 코드 하나하나에 대해 정말 깊은 고민을 하고 계시는 것처럼 느껴졌고, 이렇게만 꾸준히 하시면, 제가 봤을 때는 빠른시일내에 급성장을 하실 것 같다는 예감이 드네요 ㅎㅎ
(저도 많은 수강생 분들을 만나봐서 감이 딱 옵니다)
수업 수강하시면서 궁금한 사항이 있으시면 언제든지 Q&A에 남겨주세요! 저도 최대한 알고있는 범위내에서, 경험에 비추어 답변 드리겠습니다.
감사합니다.
수업 듣는 도중 같은 고민 있었는데,
강사님, 질문자님 모두 감사합니다 ㅎㅎ