【问题标题】:Currency and Exchange Name from Yahoo来自雅虎的货币和交易所名称
【发布时间】:2016-06-01 20:01:07
【问题描述】:

我对 pandas 很陌生(和一般的编码),但我真的很喜欢从雅虎财经提取股票数据。

我只是想知道是否有办法同时提取股票上市的交易所的名称(即 LSE、纽约证券交易所、AIM 等),以及股票在雅虎上市的货币?

这是我目前的代码(今晚下班后我会添加一些轴标签):

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

【问题讨论】:

    标签: pandas currency yahoo yahoo-finance


    【解决方案1】:

    我认为您可以将 read_csvlink 过滤出来,然后将 concat 过滤到 df。然后你可以使用loc进行映射:

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

    【讨论】:

    • 我也尝试检查货币,但似乎总是以美元为单位。
    • 现在我再次尝试阅读您的问题,但我不确定我是否理解正确。所以请检查答案,如果有问题,我会尝试修复它。
    • 啊,好吧,我在英国,如果我能找到一种方法在某处包含货币,那将非常有用。我会继续找的!今晚我会检查你的解决方案,让交易所在某处上市 - 看起来它只会显示在 NYSE/NASDAQ/AMEX 上市的那些,但我确信我可以编辑你编写的代码以提取 LSE/AIM 相关数据也。感谢您的回复!
    • 谢谢 - 找到答案链接here
    猜你喜欢
    • 2022-12-12
    • 2011-10-06
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2022-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    相关资源
    最近更新 更多