2016-06-01 5 views
1

Ich bin ziemlich neu zu Pandas (und Codierung im Allgemeinen), aber ich genieße es wirklich rumspielen mit ziehen Daten aus Yahoo Finance.Währung und Exchange Name von Yahoo

Ich fragte mich gerade, ob es eine Möglichkeit gibt, auch den Namen der Börse, die die Aktie aufgeführt ist (d. H. LSE, NYSE, AIM usw.), sowie die Währung, die die Aktie von Yahoo aufgeführt ist?

Dies ist mein Code so weit (ich auf dem Hinzufügen einiger Achsenbeschriftungen arbeiten würde, wenn ich von der Arbeit heute Abend bin zurück):

import pandas as pd 
import sys 
import matplotlib 
import matplotlib.pyplot as plt 
import pandas_datareader.data as web 
print('Python version ' + sys.version) 
print('Pandas version ' + pd.__version__) 
print('Matplotlib version ' + matplotlib.__version__) 

symbols_list = ['ORCL', 'AAPL', 'TSLA'] 
d = {} 
for x in symbols_list: 
    d[x] = web.DataReader(x, "yahoo", '2012-12-01') 
ticker = pd.Panel(d) 
df1 = ticker.minor_xs('Adj Close') 
print df1 

fig = plt.figure() 
fig.suptitle("Stock Prices", fontsize=36, fontweight='bold') 

plt.plot(df1) 
plt.legend(ticker, loc='best', shadow=True, fontsize=36) 
plt.show() 

Antwort

0

Ich denke, man kann read_csv von link, Filtersäulen und dann concat sie zu df. Dann können Sie loc für maping verwenden:

import pandas as pd 
import sys 
import matplotlib 
import matplotlib.pyplot as plt 
import pandas_datareader.data as web 
print('Python version ' + sys.version) 
print('Pandas version ' + pd.__version__) 
print('Matplotlib version ' + matplotlib.__version__) 



df_NASDAQ = pd.read_csv('http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=NASDAQ&render=download', 
         usecols=['Symbol', 'Name']) 
#print (df_NASDAQ.head()) 

df_NYSE = pd.read_csv('http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=NYSE&render=download', 
         usecols=['Symbol', 'Name']) 
#print (df_NYSE.head()) 

df_AMEX = pd.read_csv('http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=AMEX&render=download', 
         usecols=['Symbol', 'Name']) 
#print (df_AMEX.head()) 

df = pd.concat([df_NASDAQ, df_NYSE, df_AMEX]).set_index('Symbol') 
print (df.head()) 
              Name 
Symbol           
TFSC      1347 Capital Corp. 
TFSCR      1347 Capital Corp. 
TFSCU      1347 Capital Corp. 
TFSCW      1347 Capital Corp. 
PIH  1347 Property Insurance Holdings, Inc. 
symbols_list = ['ORCL', 'AAPL', 'TSLA'] 
d = {} 
for x in symbols_list: 
    print (x, df.loc[x, 'Name']) 
ORCL Oracle Corporation 
AAPL Apple Inc. 
TSLA Tesla Motors, Inc. 

    #d[ x ] = web.DataReader(x, "yahoo", '2012-12-01') 
    d[ df.loc[x, 'Name'] ] = web.DataReader(x, "yahoo", '2012-12-01') 
ticker = pd.Panel(d) 
df1 = ticker.minor_xs('Adj Close') 
print (df1.head()) 

fig = plt.figure() 
fig.suptitle("Stock Prices", fontsize=36, fontweight='bold') 

plt.plot(df1) 
plt.legend(ticker, loc='best', shadow=True, fontsize=36) 
plt.show() 
+0

Ich versuche Währung zu überprüfen, aber es scheint, ist immer in Dollar. – jezrael

+0

Und jetzt versuche ich deine Frage noch einmal zu lesen und bin mir nicht sicher, ob ich es richtig verstehe. Also überprüfen Sie bitte die Antwort und wenn etwas nicht stimmt, versuche ich es zu reparieren. – jezrael

+0

Ah OK, ich bin in Großbritannien ansässig, es wäre wirklich nützlich, wenn ich einen Weg finden könnte, die Währung irgendwo einzubauen. Ich werde weiter suchen! Ich überprüfe deine Lösung heute Abend, um die Börse irgendwo aufzulisten - es sieht so aus, als würde sie nur die an der NYSE/NASDAQ/AMEX gelisteten anzeigen, aber ich bin mir sicher, dass ich den Code bearbeiten kann, den du geschrieben hast, um LSE/AIM-bezogene Daten zu erhalten auch. Danke für deine Antwort! – Andy