2017-12-14 9 views
-1

ちょっと私はデータサイエンスの初心者で、いくつかの株式データをPythonで分析して可視化したかったのです。私は既にデータをダウンロードしてプロットする例をいくつか見つけましたが、見つかったほとんどのコード例は数年前のものであり、動作しませんでした。 私は既にいくつかのデータをMicrosoftから入手するためにいくつかのコードを書いていますが、それは他の企業にとっては役に立たず、なぜか分かりません。Pythonの株式データの分析と可視化

import numpy as np 
import pandas as pd 
import datetime as dt 
from sklearn import preprocessing 
from datetime import datetime 
from sklearn.ensemble import RandomForestClassifier 
from sklearn import neighbors 
from sklearn.ensemble import AdaBoostClassifier 
from sklearn.ensemble import GradientBoostingClassifier 
from sklearn.svm import SVC 
import operator 
import pandas_datareader.data as web 
import re 
from dateutil import parser 
import matplotlib as style 
import matplotlib.pyplot as plt 
import matplotlib.ticker as mticker 
import matplotlib.dates as mdates 


def getStock(symbol, start, end): 

df = pd.io.data.get_data_yahoo(symbol, start, end) 

df.columns.values[-1] = 'AdjClose' 
df.columns = df.columns + '_' + symbol 
df['Return_%s' %symbol] = df['AdjClose_%s' %symbol].pct_change() 

return df 

def getStockFromQuandl(symbol, name, start, end): 


import Quandl 
df = Quandl.get(symbol, trim_start = start, trim_end = end, authtoken="your token") 

df.columns.values[-1] = 'AdjClose' 
df.columns = df.columns + '_' + name 
df['Return_%s' %name] = df['AdjClose_%s' %name].pct_change() 

return df 

def getStockDataFromWeb(fout, start_string, end_string): 


start = parser.parse(start_string) 
end = parser.parse(end_string) 

nasdaq = getStock('^IXIC', start, end) 
frankfurt = getStock('^GDAXI', start, end) 
london = getStock('^FTSE', start, end) 
paris = getStock('^FCHI', start, end) 
hkong = getStock('^HSI', start, end) 
nikkei = getStock('^N225', start, end) 
australia = getStock('^AXJO', start, end) 

djia = getStockFromQuandl("YAHOO/INDEX_DJI", 'Djia', start_string, end_string) 

out = pd.io.data.get_data_yahoo(fout, start, end) 
out.columns.values[-1] = 'AdjClose' 
out.columns = out.columns + '_Out' 
out['Return_Out'] = out['AdjClose_Out'].pct_change() 

return [out, nasdaq, djia, frankfurt, london, paris, hkong, nikkei, australia] 

fig = plt.figure() 
ax1 = fig.add_subplot(1,1,1) 
ax1.plot(msft.index, msft, label='Microsoft') 
ax1.plot(short_rolling_msft.index, short_rolling_msft, label='20 aufeinanderfolgende Tage') 
ax1.plot(long_rolling_msft.index, long_rolling_msft, label='100 aufeinanderfolgende Tage') 
ax1.set_xlabel('Jahr') 
ax1.set_ylabel('Aktienpreis ($)') 
ax1.legend() 

plt.show() 

は、理論的には私はそれだけで、アップルやテスラを示すために、例えばAAPLまたはTSLAにMSFTを変更することは可能だろうと思いました。 私はこれを行うと失敗しました。

NameError: name 'aapl' is not defined 

誰も私にこの理由が説明できないのですか?あなたが私の説明を助けることができれば、とても感謝しています。 Btw私はPython 3.6を使用しています。

答えて

0

MSFTが、私はあなたがの線に沿ってライン欠けている推測しているのいずれかに定義されていません...:次にMSFTまたはAAPLは、データフレームとmsft.indexのように定義されるだろう

msft=getStock("MSFT", start, end) 

はなるだろうセンス...

関連する問題