Creating "Market Capitalization" column to existing dataframe using one of the column value

151 Views Asked by At

I have data frame with symbols of stock

Here is Head of my data frame

eqList.head()
        code    
0   095570.KS   
1   006840.KS   
2   027410.KS   
3   282330.KS   
4   138930.KS   

I am trying to add a marketCap using pandas_datareader.get_quote_yahoo

data.get_quote_yahoo(eqList['code'][2222])['marketCap']

050090.KQ    42256404480
Name: marketCap, dtype: int64

Applying to whole dataframe

eqList['marketCap'] = pd.Series(data.get_quote_yahoo(eqList['code'])['marketCap'], index=eqList.index)

However, I get index error below is full error message.

---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-47-0fe4f9373d51> in <module>
----> 1 eqList['marketCap'] = pd.Series(data.get_quote_yahoo(eqList['code'])['marketCap'], index=eqList.index)

~\.conda\envs\py36\lib\site-packages\pandas_datareader\data.py in get_quote_yahoo(*args, **kwargs)
     96 
     97 def get_quote_yahoo(*args, **kwargs):
---> 98     return YahooQuotesReader(*args, **kwargs).read()
     99 
    100 

~\.conda\envs\py36\lib\site-packages\pandas_datareader\yahoo\quotes.py in read(self)
     28             data = OrderedDict()
     29             for symbol in self.symbols:
---> 30                 data[symbol] = self._read_one_data(self.url, self.params(symbol)).loc[
     31                     symbol
     32                 ]

~\.conda\envs\py36\lib\site-packages\pandas_datareader\base.py in _read_one_data(self, url, params)
    110         else:
    111             raise NotImplementedError(self._format)
--> 112         return self._read_lines(out)
    113 
    114     def _read_url_as_StringIO(self, url, params=None):

~\.conda\envs\py36\lib\site-packages\pandas_datareader\yahoo\quotes.py in _read_lines(self, out)
     41 
     42     def _read_lines(self, out):
---> 43         data = json.loads(out.read())["quoteResponse"]["result"][0]
     44         idx = data.pop("symbol")
     45         data["price"] = data["regularMarketPrice"]

IndexError: list index out of range

Could anyone help me please?

1

There are 1 best solutions below

0
On

Found the companies symbols ordered by its Market Cap.