2016-06-01 2 views
1

Я совершенно новый для панд (и кодирования в целом), но мне действительно нравится возиться с вытаскиванием данных о запасах из Yahoo Finance.Валюта и обменное имя от Yahoo

Я просто задавался вопросом, есть ли способ вытащить название биржи, на которую перечислены акции (например, LSE, NYSE, AIM и т. Д.), А также валюту, в которой акции указаны в Yahoo?

Это мой код до сих пор (я буду работать над добавлением некоторых метки осей, когда я вернулся с работы вечером):

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() 

ответ

0

Я думаю, что вы можете read_csv из link, фильтров столбцов, а затем concat их до df. Затем вы можете использовать loc для Maping:

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

Я пытаюсь проверить валюту тоже, но это, кажется, всегда в долларах. – jezrael

+0

И теперь я попробую снова прочитать ваш вопрос, и я не уверен, правильно ли я это понимаю. Поэтому, пожалуйста, проверьте ответ, и если что-то не так, я попробую повторить его. – jezrael

+0

Ах, да, я нахожусь в Великобритании, это было бы очень полезно, если бы я мог найти способ включить валюту где-нибудь. Я буду продолжать смотреть! Я проведу ваше решение сегодня вечером, чтобы обменяться там где-нибудь - похоже, он отобразит только те, что указаны на NYSE/NASDAQ/AMEX, но я уверен, что могу редактировать код, который вы написали, для переноса данных LSE/AIM слишком. Спасибо за ваш ответ! – Andy

Смежные вопросы