我试图创建一个DataFrame与标准普尔500公司在过去的每一天20年.我有条目的数据,并存在有记录在每个公司的进入日期和存在日期(如果是这种情况).它如下(更多行):
Action Company Code Date
0 Added FactSet Res FDS.N 2021-12-20
1 Removed HanesBrands HBI.N 2021-12-20
2 Removed Leggett & Platt LEG.N 2021-12-20
3 Added Signature Bank SBNY.OQ 2021-12-20
4 Added Solaredge Tech SEDG.OQ 2021-12-20
5 Added HanesBrands HBI.N 2015-03-23
6 Added Leggett & Platt LEG.N 1999-10-18
在另一个dataframe中,我将每个交易日期作为索引,并将每个唯一的公司代码作为列。它看起来像这样(更多列):
Dates FDS.N HBI.N LEG.N SBNY.OQ SEDG.OQ
1999-12-31 NaN NaN NaN NaN NaN
2000-01-03 NaN NaN NaN NaN NaN
2000-01-04 NaN NaN NaN NaN NaN
2000-01-05 NaN NaN NaN NaN NaN
2000-01-06 NaN NaN NaN NaN NaN
... ... ... ... ... ...
2021-12-27 NaN NaN NaN NaN NaN
2021-12-28 NaN NaN NaN NaN NaN
2021-12-29 NaN NaN NaN NaN NaN
2021-12-30 NaN NaN NaN NaN NaN
2021-12-31 NaN NaN NaN NaN NaN
我试图做的是用每个公司的名称填充第二个DataFrame,如果在每个索引日期,该公司是否是索引的一部分。它会像这样(这只是一个例子):
Dates FDS.N HBI.N LEG.N SBNY.OQ SEDG.OQ
1999-12-31 NaN NaN LEG.N NaN NaN
2000-01-03 NaN NaN LEG.N NaN NaN
2000-01-04 NaN NaN LEG.N NaN NaN
2000-01-05 NaN NaN LEG.N NaN NaN
2000-01-06 NaN NaN LEG.N NaN NaN
... ... ... ... ... ...
2021-12-27 FDS.N NaN NaN SBNY.OQ SEDG.OQ
2021-12-28 FDS.N NaN NaN SBNY.OQ SEDG.OQ
2021-12-29 FDS.N NaN NaN SBNY.OQ SEDG.OQ
2021-12-30 FDS.N NaN NaN SBNY.OQ SEDG.OQ
2021-12-31 FDS.N NaN NaN SBNY.OQ SEDG.OQ
我真的不知道如何实现这一点。
1条答案
按热度按时间wgx48brx1#
在上市日和退市日的数据框中按发行进行提取,如果有两行,则第一行上市,第二行退市,因为存在上市和退市,并且由于一行只有上市日,因此日期范围作为指定的最后一天获得。最后,用所需交易日的指数更新S&P的数据。