2017-12-21 1 views
0

이번 주에 파이썬에서 시작한 총 초보자. 나는 두려움없이 파이썬뿐만 아니라 Datacamp와 다른 온라인 자원을 읽었습니다.주가 주가 새소식 가져 오기 문제

인터넷에서 일부 데이터 가격 및 코드를 가져올 수 있는지 테스트하고 싶습니다. 라인은 =을 닫 문자열 인덱스 라인 (10)

import pandas_datareader as pdr #needed to read data from yahoo 

#df = pdr.get_data_yahoo('AAPL') 
#print (df.Close) 

stock =('AAPL') 
start_date = '2017-01-01' 
end_date = '2017-12-10' 

closes = [c['Close'] for c in pdr.get_data_yahoo(stock, start_date, 
end_date)] 

for c in closes: 
    print (c) 

에 정수이어야합니다 [C .......] 나에게 오류를주고있다 : 형식 오류 : 나는이 오류로 인해 동작하지 않습니다.

해결 방법에 대한 조언이 있으십니까? 나는 여행을 시작하고 실제로 지난해 S & P500에 가까운 가격을 가져 와서 Excel에 저장하려고합니다. 이 작업을 이미 수행 한 스 니펫이 있고 여기에서 배울 수있는 경우 알려주십시오.

감사합니다.

+0

당신이 –

답변

1

get_data_yahoo을 호출하면 단일 데이터 프레임이 반환됩니다.

df = pdr.get_data_yahoo(stock, start_date, end_date) 
df.head() 

        Open  High   Low  Close Adj Close \ 
Date                  
2017-01-03 115.800003 116.330002 114.760002 116.150002 114.311760 
2017-01-04 115.849998 116.510002 115.750000 116.019997 114.183815 
2017-01-05 115.919998 116.860001 115.809998 116.610001 114.764473 
2017-01-06 116.779999 118.160004 116.470001 117.910004 116.043915 
2017-01-09 117.949997 119.430000 117.940002 118.989998 117.106812 

       Volume 
Date     
2017-01-03 28781900 
2017-01-04 21118100 
2017-01-05 22193600 
2017-01-06 31751900 
2017-01-09 33561900 

type(df) 
pandas.core.frame.DataFrame 

한편, 반환 된 데이터 프레임을 반복하려고합니다. 기본적으로 for 루프는 열을 반복합니다. 예를 들어 :

for c in df: 
    print(c) 

Open 
High 
Low 
Close 
Adj Close 
Volume 
당신이 목록 빌려에서이 코드를 복제하면, c가 차례로 각 열 이름이 지정됩니다

str[str] 잘못된 작업입니다.

요약하면 Closes 열을 얻으려면 반환 된 결과에 closes = df['Closes']을 수행하는 것만으로 충분합니다.

+0

감사 표시되는 오류 메시지를 게시하시기 바랍니다! 따라서 S & P 500의 일일 마감 가격의 최근 3 년을 다운로드하려면 루프를 실행하고 DataFrame에 추가해야합니다. get_data_yahoo가 아닌 Yahoo에 전화가 걸려 500 개의 주식 목록에 대한 마감일의 마지막 x 일이 반환 될 것입니까? – Confusedxx

+0

@Confusedxx이 API에 대한 내 지식은 여기에서 끝납니다 ... 새로운 질문을하고 싶을 수도 있습니다. 행운을 빕니다! –

0

데이터 프레임을 Excel 스프레드 시트로 덤프하려고합니다. 이것은 당신을 거기에 데려다 줄 것입니다.

import pandas as pd 
import pandas_datareader as pdr 

df = pdr.get_data_yahoo('AAPL') 
df.head(2) 

Out[12]: 
       Open  High Low  Close Adj Close  Volume 
Date 
2009-12-31 30.447144 30.478571 30.08 30.104286 26.986492 88102700 
2010-01-04 30.490000 30.642857 30.34 30.572857 27.406532 123432400 

df.to_excel('dump_aapl.xlsx') 

당신은 단지 닫기 열을 원하는 경우 :

df['Close'].to_excel('dump_aapl.xlsx') 
관련 문제