[英]Create NaN rows in pandas dataframe by aligning Dates
我有一个熊猫数据框,如附件所示。 它包含 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
谢谢
您想使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.