通过对齐日期在 Pandas 数据框中创建 NaN 行

我有一个熊猫数据框,如附件所示。它包含 2 个唯一 BondID 的不同日期的价格,如下所示:-


Quote_Date     BondID     mid_ZSpread    rank

----------     ------     -----------    -----

28-12-2018     AAA        90.9           1

28-12-2018     BBB        30.9           2

31-12-2018     AAA        91.9           1

02-01-2019     AAA        92.9           1

02-01-2019     BBB        31.9           2

对于该通知2018年1月31日-通知只有BondID AAA具有的价格。BondID BBB 缺少价格。


我怎样才能编写一个有效的代码来:-


1)对齐日期,即如果获得唯一日期


2)然后在“mid_ZSpread”和“overall_rank”列中创建NaN条目(如下图)


Quote_Date     BondID     mid_ZSpread    rank

----------     ------     -----------    -----

28-12-2018     AAA        90.9           1

28-12-2018     BBB        30.9           2

31-12-2018     AAA        91.9           1

31-12-2018     BBB        NaN            NaN

02-01-2019     AAA        92.9           1

02-01-2019     BBB        31.9           2

谢谢


呼如林
浏览 204回答 1
1回答

烙印99

您想使用reindex,为此您需要先创建一个 MultiIndex,其中 QuoteDate 和 BondID 的所有组合都出现了from_product。如果你然后set_index,你可以重新索引,Pandas 会自动给出NaN未知值。mi = pd.MultiIndex.from_product([df['Quote_Date'].unique(), df['BondID'].unique()])df.set_index(['Quote_Date', 'BondID']).reindex(mi)#                    mid_ZSpread  rank#28-12-2018 AAA         90.9   1.0#           BBB         30.9   2.0#31-12-2018 AAA         91.9   1.0#           BBB          NaN   NaN#02-01-2019 AAA         92.9   1.0#           BBB         31.9   2.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python