PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2018/12/23 18:13:10
Name 20358
File #1 1_b.png (47.7 KB), Download : 21
File #2 FRED.png (16.7 KB), Download : 0
Subject [질문] 파이썬으로 데이터 분석 (상관계수) 질문입니다. (수정됨)




파이썬을 아예 처음 다뤄보는 문돌이 학부생입니다.

파이썬으로 데이터 통계 하는 것을 배워보고자 해서 연습 중인데 막히는게 있어 질문드립니다.


연습 문제는 첨부된 이미지와 같고, 피어슨 상관계수를 사용해서 저런 table을 만드는 것이 목표인데요

FEDFUNDS부터 GS30까지 외부 데이터 import는 했는데 그 뒤로 최종적인 table를 어떻게 만들어야 하는지 중간 과정을 잘 모르겠습니다.

일단 예제에 처음 부분에
import numpy as np
import pandas as pd
가 있어서 이를 이용해야 할 거 같긴 한데 완전 초보라 인터넷에 산발적인 블로그 글 등만 봐서는 잘 이해가 가지 않네요...

FEDFUNDS ~ GS30 데이터 형식도 스샷으로 짧게나마 첨부합니다. (보다시피 143x1 개의 데이터로 되어있습니다.)


학교 도서관에서 관련 서적을 찾자니 주말이라 폐관이고, 내일은 학교가기가 좀 어려워서 인터넷으로 질문올립니다. ( _ _ )

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
18/12/23 18:57
수정 아이콘
import pandas as pd

start = date(2007, 1, 1)

name_list = [
'FEDFUNDS', 'GS1M', 'GS3M', 'GS6M',
'GS1', 'GS2', 'GS3', 'GS5',
'GS10', 'GS20', 'GS30'
]


data = pd.DataFrame()
for name in name_list:
_data = DataReader(name, 'fred', start=start)s
data[name] = _data[name]

print(data.corr())


이렇게하면 될텐데 몇 가지 확인이 필요할 것 같네요.

1. 각 dataset (_data) 별로 length가 같은지? (len(_data))
- pandas 데이터프레임은 새로운 column을 assign할때 기본적으로 기존 데이터프레임의 index에 맞도록 merge합니다)
- 만약 원하는 데이터포맷으로 안붙으면 df1.merge(df2, on=['DATE']) 이런식으로 붙여주시면 될겁니다.

2. 다시 생각해보니 문제될건 위에 하나밖에 없어 보이네요.
18/12/23 19:26
수정 아이콘
(수정됨) 감사합니다. 데이터는 모두 143 rows라 문제 없을 거 같습니다.

죄송하지만 추가적인 질문이 가능할까요...?

1. 알려주신 코드를 돌려보니

File "<ipython-input-67-88655cbdd3a4>", line 13
_data = DataReader(name, 'fred', start=start)s
^
IndentationError: expected an indented block

가 발생하네요. 이럴 떈 어떻게 고쳐야 할지가 궁금하고


2. 제가 수작업...;으로 FEDFUNDS 부터 GS30까지를 쳤는데,
근본적으로 이 상황에서 행렬같은 dataframe을 만들려면 어떻게 하는지 잘 모르겠네요.
구글링해서 dataframe 을 검색해보면 외부 데이터가 아닌 파이썬 내에서 임의로 만든 행으로만 예시가 되어있어서 ([Korea','Japan','China'][1,2,3]같이..)
위와 같이 외부에서 column을 읽어왔을 떄는 dataframe을 어떻게 만드는지 궁금합니다.
18/12/23 19:37
수정 아이콘
1.
for name in name_list:

아래 두 줄은 tab으로 indentation이 들어가야 합니다.
pgr에서 tab이 안먹혀서 저렇게 됐네요ㅠ (for loop 시작하는 줄부터 3줄은 한줄씩 복붙 해주시면 됩니다. ipython이 indent는 알아서 해주니)

_data = DataReader(name, 'fred', start=start)
data[name] = _data[name]

2.
위의 1 코드가 에러 없이 돌아가면 원하시는 행렬 형태의 데이터프레임이 만들어집니다.
pandas dataframe의 column은 기본적으로 series object이고요.
data[column_name] = series
이런식으로 기존 dataframe의 column에 새로운 column을 assign할 수 있습니다 (1.의 for loop도 동일한 작업을 한것입니다)
18/12/23 21:00
수정 아이콘
에러 구문 보고 구글링 후 첫째 줄만 탭해봤는데 안 되길래 이거로는 안되는건가..? 했는데
둘째 줄 까지 해야되는 거였군요. For 반복구문이 뭔지 몰랐는데 그것도 검색해보고 알았습니다 크크ㅠㅠ

설명도 감사하고 결과도 정말 깔끔하게 잘 나오네요. 감사합니다!
18/12/23 23:52
수정 아이콘
도움이 되셨다니 다행이네요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
128479 [질문] 어크 오디세이 구매관련 질문입니다. [8] 찬양자2982 18/12/24 2982
128478 [질문] 한글 글자간격 벌어지는 문제 [7] 마리아 호아키나5679 18/12/24 5679
128477 [질문] 타인의 실언에 얼마나 너그러우신가요? [21] In The Long Run3501 18/12/24 3501
128476 [질문] . [1] 삭제됨1443 18/12/23 1443
128475 [질문] 모바일로 MKV 영상 재생 방법이 있을까요? [4] 요슈아7084 18/12/23 7084
128474 [질문] 서브로 쓸 저가 노트북 추천부탁드립니다. [1] 강미나2632 18/12/23 2632
128473 [질문] 남자용 목도리 같은데 무슨 종류인지 알고 싶습니다. [4] 보로미어2328 18/12/23 2328
128472 [질문] 와우 요즘도 할만한가요? [19] 치토스3664 18/12/23 3664
128471 [질문] 컴퓨터 견적 질문있습니다! [6] netm2445 18/12/23 2445
128470 [질문] 샤오미 로봇청소기 2세대 질문드립니다. [6] 나는언제돈버나2034 18/12/23 2034
128469 [질문] 크롬에서 유튜브 로그인이 풀리는 증상 [2] 쌈무3754 18/12/23 3754
128468 [질문] 서울에 라멘 맛집이 있을까요.. [23] 진리는나의빛4671 18/12/23 4671
128467 [질문] 컴퓨터가 한대라도 캡쳐카드 사용시 리소스가 줄어드나요? [2] 지니쏠1653 18/12/23 1653
128466 [질문] 파이썬으로 데이터 분석 (상관계수) 질문입니다. [5] 203582446 18/12/23 2446
128465 [질문] 매든 NFL 19 관련 질문입니다. [1] 킹보검1804 18/12/23 1804
128464 [질문] 부산 여행(먹거리 위주) 추천 부탁드립니다. [6] 배려2740 18/12/23 2740
128463 [질문] 인피니트 워 다시 보다가 질문드립니다-! [3] 회색사과1929 18/12/23 1929
128462 [질문] 가중평균 관련해서 질문드립니다! [9] 개념적 문제1765 18/12/23 1765
128460 [질문] KT 인터넷 연결, 구축아파트 [7] 어센틱1985 18/12/23 1985
128459 [질문] 야구에서의 승리타점 문의 [10] 그리움 그 뒤1837 18/12/23 1837
128458 [질문] 모니터암 사용법에 질문드립니다 [1] QED4lag1659 18/12/23 1659
128457 [질문] 제가 몬헌월드 재미나게 할 수 있을까요? [9] 네오크로우2372 18/12/23 2372
128456 [질문] 스위치 대난투, 카트 질문드립니다. [4] 바카스2141 18/12/23 2141
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로