2017-03-27 4 views
-2

yahoo_finance 데이터를 가져 와서 mysql 데이터베이스에 저장하는 python 스크립트를 작성하려고합니다. 나는 긴 바람이 불어 오는 길을 통해 그것을 할 수 있지만 지금은 팬더와 dataframe.to.sql을 발견했습니다.AttributeError : 'list'객체에 'to_sql'속성이 없습니다.

나는 작동하지 않지만 나는 AttributeError를 계속 유지할 수 없다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

import yahoo_finance 
from yahoo_finance import Share 
import pandas as pd 
import mysql.connector 
from sqlalchemy import create_engine 


engine = create_engine('mysql://user:[email protected]') 
data = Share('YHOO') 
df= data.get_historical ('2016-03-24', '2017-03-24') 
df.to_sql(name = daily_price, con = engine, if_exists = 'append', flavor = 'mysql') 

많은 감사! 당신은 야후의 데이터를 얻을 수 pandas_datareader을 사용할 수 있습니다

+1

'df '는 데이터 프레임이 아닙니다. 'pandas'를 가져 오면 갑자기 non-Pandas 객체가 Pandas 메소드를 지원하지 않게됩니다. – user2357112

+1

'.get_historical()'은'pandas.DataFrame'이 아니라'list'를 반환한다고 가정합니다. – AChampion

+0

Brilliant- thanks for this- 일단 df = pd.DataFrame (데이터)을 사용하면 작동합니다. 도움을 주셔서 감사합니다! –

답변

1

는 (이 pandas.io을 해야하는 데 사용) :

>>> import pandas_datareader.data as web 
>>> data = web.get_data_yahoo('YHOO', '2016-03-24', '2017-03-24') 
>>> # Or: web.DataReader('YHOO', 'yahoo', '2016-03-24', '2017-03-24') 
>>> data 
       Open  High  Low  Close Volume Adj Close 
Date                  
2016-03-24 34.450001 34.869999 33.930000 34.860001 14118600 34.860001 
2016-03-28 35.389999 35.450001 34.619999 35.230000 12981000 35.230000 
2016-03-29 35.049999 36.430000 35.009998 36.320000 23603400 36.320000 
2016-03-30 36.610001 37.279999 36.439999 36.560001 19849800 36.560001 
... 
>>> type(data) 
pandas.core.frame.DataFrame 

이제 data.to_sql(...)를 호출 할 수 있습니다.

관련 문제