【问题标题】:Trying to find Mean returns for following stocks from yahoo finance试图从雅虎金融中找到以下股票的平均回报
【发布时间】:2020-05-08 00:59:27
【问题描述】:
tickers = ['BIOCON.NS', 'HDFCBANK.NS', 'RELIANCE.NS', 'RADICO.NS', 'LTI.NS', 'TCS.NS', 'DRREDDY.NS','BAJFINANCE.NS']

pfolio_data = pd.DataFrame()

for t in tickers:
    pfolio_data[t] = wb.DataReader(t, data_source='yahoo', start ='2017-1-1')['Adj Close']

pfolio_data_returns= (pfolio_data/pfolio_data.shift(1))-1
pfolio_data_returns

pfolio_data_returns[[[[[[[['BIOCON.NS', 'HDFCBANK.NS', 'RELIANCE.NS', 'RADICO.NS', 'LTI.NS', 'TCS.NS', 'DRREDDY.NS','BAJFINANCE.NS']]]]]]]].mean()

最后的代码显示错误 -

unhashable type: 'list'

我应该怎么做?

【问题讨论】:

    标签: python


    【解决方案1】:

    pfolio_data_returns 中的数据是什么样的?
    也许这就是你要找的:
    Type error: unhashable type 'list' while selecting subset from specific columns pandas dataframe

    【讨论】:

      【解决方案2】:

      这应该可行:

      import pandas as pd
      import pandas_datareader as wb
      
      tickers = ['BIOCON.NS', 'HDFCBANK.NS', 'RELIANCE.NS', 'RADICO.NS', 'LTI.NS', 'TCS.NS', 'DRREDDY.NS','BAJFINANCE.NS']
      data = {ticker: wb.DataReader(ticker, data_source='yahoo', start ='2017-1-1')['Adj Close'] for ticker in tickers}
      df_raw = pd.DataFrame(data)
      
      df_returns = (
          df_raw
          .apply(lambda df: df/df.shift(1)-1)
      )
      
      df_returns.mean()
      
      Out[28]: 
      BIOCON.NS        0.001252
      HDFCBANK.NS      0.000694
      RELIANCE.NS      0.001477
      RADICO.NS        0.001759
      LTI.NS           0.001306
      TCS.NS           0.000831
      DRREDDY.NS       0.000503
      BAJFINANCE.NS    0.001425
      dtype: float64
      

      我改变了您创建数据框的方式。用字典理解看起来更干净。 df_raw 包含原始数据,df_returns 计算返回值,下面的 .mean() 语句计算每列的平均值。

      【讨论】:

        【解决方案3】:

        开/关括号太多。以下作品:

        pfolio_data_returns[['BIOCON.NS', 'HDFCBANK.NS', 'RELIANCE.NS', 'RADICO.NS', 'LTI.NS', 'TCS.NS', 'DRREDDY.NS','BAJFINANCE.NS']].mean()。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-21
          • 1970-01-01
          • 1970-01-01
          • 2018-09-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多