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

2024-09-28 05:26:50 发布

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

我有一个熊猫数据框,如附件所示。它包含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

谢谢


Tags: 数据代码附件date价格nanquotebbb
1条回答
网友
1楼 · 发布于 2024-09-28 05:26:50

您需要使用^{},为此您需要首先创建一个多索引,其中QuoteDate和BondID的所有组合都出现在^{}。如果然后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

相关问题 更多 >

    热门问题