如何在PandasDatareader中按原始顺序对解析的证券进行排序?

2024-05-15 08:05:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我的证券清单是:

tickers =  ['TLW.L','WEIR.L','RMG.L','TSCO.L','STAN.L','CNA.L']

当我调用数据读取器提取adj时。关闭每个,我得到一个数据帧,其中所有的标签都按字母顺序进行分析:

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中的股票的原始顺序排序,以便以后将每个价格乘以投资组合中持有的相应数量的股票:

n_shares = [1000000, 200000, 1500000, 500000, 2000000, 1500000]

获取聚合值,然后执行投资组合分析。你知道吗

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

我完全可以手动进行乘法,但是如果我有一个100个资产的列表,那就不太可行了。你知道吗

请帮我解析原始状态的股票,或者如果有更好的替代解决方案,我想听听!你知道吗

提前谢谢!你知道吗


Tags: 数据列表顺序状态字母hist股票prices
0条回答
网友
1楼 · 发布于 2024-05-15 08:05:17

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

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楼 · 发布于 2024-05-15 08:05:17

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

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

相关问题 更多 >