简体   繁体   English

使用列值之一为现有数据框创建“市值”列

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

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我正在尝试使用 pandas_datareader.get_quote_yahoo 添加一个 marketCap

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?有人可以帮我吗?

找到按市值排序的公司代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM