Pandas 雅虎提供的货币和交换名称

Pandas 雅虎提供的货币和交换名称,pandas,currency,yahoo,yahoo-finance,Pandas,Currency,Yahoo,Yahoo Finance,我对pandas(以及一般的编码)很陌生,但我真的很喜欢从Yahoo Finance获取股票数据 我只是想知道是否有办法也从雅虎那里提取股票上市的交易所名称(如伦敦证交所、纽约证交所、AIM等),以及股票上市的货币 这是我到目前为止的代码(今晚下班后我将努力添加一些轴标签): 我认为您可以从中筛选列,然后将它们添加到df。然后,您可以使用进行映射: import pandas as pd import sys import matplotlib import matplotlib.pyplot

我对pandas(以及一般的编码)很陌生,但我真的很喜欢从Yahoo Finance获取股票数据

我只是想知道是否有办法也从雅虎那里提取股票上市的交易所名称(如伦敦证交所、纽约证交所、AIM等),以及股票上市的货币

这是我到目前为止的代码(今晚下班后我将努力添加一些轴标签):

我认为您可以从中筛选列,然后将它们添加到
df
。然后,您可以使用进行映射:

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.
我认为您可以从中筛选列,然后将它们添加到
df
。然后,您可以使用进行映射:

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.

我也试着检查货币,但它似乎总是以美元为单位。现在我试着再次阅读你的问题,我不确定我是否理解正确。所以请检查答案,如果有什么问题,我会尝试重新修改。啊,好的,我在英国。如果我能找到一种方法将货币包括在某个地方,那将非常有用。我会继续找的!今晚我将检查您的解决方案,以使交易所在某处上市-它似乎只显示在纽约证交所/纳斯达克/美国运通上市的股票,但我相信我也可以编辑您编写的代码,以获取LSE/AIM相关数据。谢谢你的回复!谢谢-找到了答案的链接。好的,请检查我的解决方案,如果我的答案有用,不要忘记。谢谢。我也试着检查货币,但它似乎总是以美元为单位。现在我试着再次阅读你的问题,我不确定我是否理解正确。所以请检查答案,如果有什么问题,我会尝试重新修改。啊,好的,我在英国。如果我能找到一种方法将货币包括在某个地方,那将非常有用。我会继续找的!今晚我将检查您的解决方案,以使交易所在某处上市-它似乎只显示在纽约证交所/纳斯达克/美国运通上市的股票,但我相信我也可以编辑您编写的代码,以获取LSE/AIM相关数据。谢谢你的回复!谢谢-找到了答案的链接。好的,请检查我的解决方案,如果我的答案有用,不要忘记。谢谢
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()