2017-11-21 2 views
0

特定のScrip名でNational Stock Exchangeからデータを取得しようとしています。パンダの時系列データをローカルホスト上のmysqlデータベースに取得する際にエラーが発生しました

私はすでにMySQLにデータベース名 "NSE"を作成しています。しかし、テーブルを作成しませんでした。

私はNSEのウェブサイトからの分のデータごとに取得するために使用しています次のスクリプトは、(のは、私はスクリップ(株)「CYIENT」のデータを取得したいとしましょう。

from alpha_vantage.timeseries import TimeSeries 
import matplotlib.pyplot as plt 
import sys 
import pymysql 

#database connection 
conn = pymysql.connect(host="localhost", user="root", passwd="pwd123", database="NSE") 
c = conn.cursor() 

your_key = "WLLS3TVOG22C6P9J" 
def stockchart(symbol): 
    ts = TimeSeries(key=your_key, output_format='pandas') 
    data, meta_data = ts.get_intraday(symbol=symbol,interval='1min', outputsize='full') 
    sql.write_frame(data, con=conn, name='NSE', if_exists='replace', flavor='mysql') 
    print(data.head()) 
    data['close'].plot() 
    plt.title('Stock chart') 
    plt.show() 

symbol=input("Enter symbol name:") 
stockchart(symbol) 

#commiting the connection then closing it. 
conn.commit() 
conn.close() 

を私は取得しています上記のスクリプトを実行するにはエラー以下:

'sql' is not defined. 

また、私は上記のスクリプトはまた、(ユーザー入力)株式「CYIENT」のNSEでテーブルを作成するかどうかわからないのです

答えて

1

答える前に、私は目を願っています。 eコードは実際のコードではなく模擬コードです。それ以外の場合は、資格情報を変更することをお勧めします。

pandas<=0.13.1)を使用しようとしています。ただし、モジュールをインポートするのを忘れたため、インタープリタはモジュールsqlを認識しません。それを修正するだけで、スクリプトの最初に追加

from pandas.io import sql 

を追加するだけです。

関数呼び出しで使用するパラメータに注目してください。 if_exists='replace'を使用するので、テーブルNSEは、この機能を実行するたびに削除され、再作成されます。それにはdataが含まれます。

+0

提案のおかげで@tmrlvi資格情報の問題はなく、再生産することができます。私のコードはまだDB内にテーブルを生成しますか? –

+0

'if_exists = 'append''私は使用するでしょう... –

+0

エラーを報告しました。' AttributeError:module 'pandas.io.sql'には属性 'write_frame''がありません –

関連する問題