首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Pandas-Datareader中将解析后的证券按原始顺序排序?

如何在Pandas-Datareader中将解析后的证券按原始顺序排序?
EN

Stack Overflow用户
提问于 2017-02-25 04:02:19
回答 2查看 106关注 0票数 2

我的证券清单如下:

代码语言:javascript
复制
tickers =  ['TLW.L','WEIR.L','RMG.L','TSCO.L','STAN.L','CNA.L']

当我调用pandas datareader来提取adj。对于每一个,我得到了一个数据帧,其中所有的报价器都是按字母顺序解析的:

代码语言:javascript
复制
hist_prices = web.DataReader(tickers, 'yahoo', start, today)['Adj Close']
hist_prices.head()

           CNA.L    RMG.L   STAN.L  TLW.L   TSCO.L  WEIR.L
Date                        
2016-01-04  200.185 417.352 541.7   170.1   142.25  920.617
2016-01-05  202.733 417.543 532.3   164.4   144.40  897.940
2016-01-06  201.600 423.082 515.6   152.7   141.55  876.227
2016-01-07  198.391 418.880 505.8   150.0   139.20  842.452
2016-01-08  196.126 419.644 505.5   138.9   146.90  823.152

对于我来说,重要的是按照定义的列表tickers中的报价器的原始顺序对数据帧进行排序,以便稍后将每个价格乘以投资组合中持有的相应股票数量:

代码语言:javascript
复制
n_shares = [1000000, 200000, 1500000, 500000, 2000000, 1500000]

以获得聚合值,然后执行投资组合分析。

我搜索了文档以解析处于原始(非字母顺序)状态的资产,但找不到解决方案。

我可以通过各种方式手动完成乘法,但如果我有一个包含100个资产的列表,这就不太可行了。

请帮助我解析原始状态的滚动条,或者如果有更好的替代解决方案,我希望听到它!

提前感谢!

EN

回答 2

Stack Overflow用户

发布于 2017-02-25 04:05:17

您可以使用tickers列表以按所需的顺序选择列:

代码语言:javascript
复制
In [6]: from pandas_datareader import data as web

In [7]: hist_prices = web.DataReader(tickers, 'yahoo', '2016-01-01', '2016-01-08') \
                         .loc['Adj Close'] \
                         [tickers]   # <------- NOTE

In [8]: hist_prices
Out[8]:
            TLW.L   WEIR.L    RMG.L  TSCO.L  STAN.L    CNA.L
Date
2016-01-04  170.1  920.617  417.352  142.25   541.7  200.185
2016-01-05  164.4  897.940  417.543  144.40   532.3  202.733
2016-01-06  152.7  876.227  423.082  141.55   515.6  201.600
2016-01-07  150.0  842.452  418.880  139.20   505.8  198.391
2016-01-08  138.9  823.152  419.644  146.90   505.5  196.126
票数 2
EN

Stack Overflow用户

发布于 2017-02-25 07:38:02

在与'Adj Close'相同的loc中使用tickers

代码语言:javascript
复制
hist_prices = web.DataReader(
    tickers, 'yahoo', '2016-01-01', '2016-01-08'
).loc['Adj Close', :, tickers]

hist_prices.head()

            TLW.L   WEIR.L    RMG.L  TSCO.L  STAN.L    CNA.L
Date                                                        
2016-01-04  170.1  920.617  417.352  142.25   541.7  200.185
2016-01-05  164.4  897.940  417.543  144.40   532.3  202.733
2016-01-06  152.7  876.227  423.082  141.55   515.6  201.600
2016-01-07  150.0  842.452  418.880  139.20   505.8  198.391
2016-01-08  138.9  823.152  419.644  146.90   505.5  196.126
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42447316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档